精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

熱門(mén)文章

最新文章

web前端面試題目匯總

發(fā)布時(shí)間:2021-06-22 15:26:45

 

HTML/CSS部分

1、什么是盒子模型?

在網(wǎng)頁(yè)中,一個(gè)元素占有空間的大小由幾個(gè)部分構(gòu)成,其中包括元素的內(nèi)容(content),元素的內(nèi)邊距(padding),元素的邊框(border),元素的外邊距(margin)四個(gè)部分。這四個(gè)部分占有的空間中,有的部分可以顯示相應(yīng)的內(nèi)容,而有的部分只用來(lái)分隔相鄰的區(qū)域或區(qū)域。4個(gè)部分一起構(gòu)成了css中元素的盒模型。

2、行內(nèi)元素有哪些?塊級(jí)元素有哪些? 空(void)元素有那些?

行內(nèi)元素:a、b、span、img、input、strong、select、label、em、button、textarea
塊級(jí)元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote
空元素:即系沒(méi)有內(nèi)容的HTML元素,例如:br、meta、hr、link、input、img

3、CSS實(shí)現(xiàn)垂直水平居中

一道經(jīng)典的問(wèn)題,實(shí)現(xiàn)方法有很多種,以下是其中一種實(shí)現(xiàn):
HTML結(jié)構(gòu):

    <div class="wrapper">
        <div class="content"></div>
    </div>

CSS:

    .wrapper {      position: relative;      width: 500px;      height: 500px;      background-color: #ddd;     }    .content{        background-color:#6699FF;        width:200px;        height:200px;        position: absolute;        //父元素需要相對(duì)定位        top: 50%;        left: 50%;        margin-top:-100px ;   //二分之一的height,width        margin-left: -100px;    }

4、簡(jiǎn)述一下src與href的區(qū)別

href 是指向網(wǎng)絡(luò)資源所在位置,建立和當(dāng)前元素(錨點(diǎn))或當(dāng)前文檔(鏈接)之間的鏈接,用于超鏈接。

src是指向外部資源的位置,指向的內(nèi)容將會(huì)嵌入到文檔中當(dāng)前標(biāo)簽所在位置;在請(qǐng)求src資源時(shí)會(huì)將其指向的資源下載并應(yīng)用到文檔內(nèi),例如js腳本,img圖片和frame等元素。當(dāng)瀏覽器解析到該元素時(shí),會(huì)暫停其他資源的下載和處理,直到將該資源加載、編譯、執(zhí)行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當(dāng)前標(biāo)簽內(nèi)。這也是為什么將js腳本放在底部而不是頭部。

5、什么是CSS Hack?

一般來(lái)說(shuō)是針對(duì)不同的瀏覽器寫(xiě)不同的CSS,就是 CSS Hack
IE瀏覽器Hack一般又分為三種,條件Hack、屬性級(jí)Hack、選擇符Hack(詳細(xì)參考CSS文檔:css文檔)。例如:

    // 1、條件Hack   <!--[if IE]>      <style>
            .test{color:red;}      </style>   <![endif]-->
   // 2、屬性Hack
    .test{    color:#090\9; /* For IE8+ */
    *color:#f00;  /* For IE7 and earlier */    _color:#ff0;  /* For IE6 and earlier */
    }   // 3、選擇符Hack
    * html .test{color:#090;}       /* For IE6 and earlier */
    * + html .test{color:#ff0;}     /* For IE7 */

6、簡(jiǎn)述同步和異步的區(qū)別

同步是阻塞模式,異步是非阻塞模式
同步就是指一個(gè)進(jìn)程在執(zhí)行某個(gè)請(qǐng)求的時(shí)候,若該請(qǐng)求需要一段時(shí)間才能返回信息,那么這個(gè)進(jìn)程將會(huì)一直等待下去,直到收到返回信息才繼續(xù)執(zhí)行下去;
異步是指進(jìn)程不需要一直等下去,而是繼續(xù)執(zhí)行下面的操作,不管其他進(jìn)程的狀態(tài)。當(dāng)有消息返回時(shí)系統(tǒng)會(huì)通知進(jìn)程進(jìn)行處理,這樣可以提高執(zhí)行的效率。

7、px和em的區(qū)別

px和em都是長(zhǎng)度單位,區(qū)別是,px的值是固定的,指定是多少就是多少,計(jì)算比較容易。em得值不是固定的,并且em會(huì)繼承父級(jí)元素的字體大小。
瀏覽器的默認(rèn)字體高都是16px。所以未經(jīng)調(diào)整的瀏覽器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

8、什么叫優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)?

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

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

區(qū)別:

a. 優(yōu)雅降級(jí)是從復(fù)雜的現(xiàn)狀開(kāi)始,并試圖減少用戶體驗(yàn)的供給

b. 漸進(jìn)增強(qiáng)則是從一個(gè)非常基礎(chǔ)的,能夠起作用的版本開(kāi)始,并不斷擴(kuò)充,以適應(yīng)未來(lái)環(huán)境的需要

c. 降級(jí)(功能衰減)意味著往回看;而漸進(jìn)增強(qiáng)則意味著朝前看,同時(shí)保證其根基處于安全地帶

9、瀏覽器的內(nèi)核分別是什么?

IE: trident內(nèi)核
Firefox:gecko內(nèi)核
Safari:webkit內(nèi)核
Opera:以前是presto內(nèi)核,Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核
Chrome:Blink(基于webkit,Google與Opera Software共同開(kāi)發(fā))

JavaScript部分

怎樣添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)?

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() //插入

3)查找
getElementsByTagName() //通過(guò)標(biāo)簽名稱
getElementsByName() //通過(guò)元素的Name屬性的值
getElementById() //通過(guò)元素Id,唯一性

實(shí)現(xiàn)一個(gè)函數(shù)clone,可以對(duì)JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進(jìn)行值復(fù)制。

    /** * 對(duì)象克隆 * 支持基本數(shù)據(jù)類型及對(duì)象 * 遞歸方法 */function clone(obj) {    var o;    switch (typeof obj) {        case "undefined":            break;        case "string":
            o = obj + "";            break;        case "number":
            o = obj - 0;            break;        case "boolean":
            o = obj;            break;        case "object": // object 分為兩種情況 對(duì)象(Object)或數(shù)組(Array)
            if (obj === null) {
                o = null;            } else {                if (Object.prototype.toString.call(obj).slice(8, -1) === "Array") {
                    o = [];                    for (var i = 0; i < obj.length; i++) {                        o.push(clone(obj[i]));                    }                } else {
                    o = {};                    for (var k in obj) {
                        o[k] = clone(obj[k]);                    }                }            }            break;        default:
            o = obj;            break;    }    return o;}

如何消除一個(gè)數(shù)組里面重復(fù)的元素?

// 方法一:var arr1 =[1,2,2,2,3,3,3,4,5,6],
    arr2 = [];for(var i = 0,len = arr1.length; i< len; i++){    if(arr2.indexOf(arr1[i]) < 0){        arr2.push(arr1[i]);    }}document.write(arr2); // 1,2,3,4,5,6

在Javascript中什么是偽數(shù)組?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組?

偽數(shù)組(類數(shù)組)無(wú)法直接調(diào)用數(shù)組方法或期望length屬性有什么特殊的行為,但仍可以對(duì)真正數(shù)組遍歷方法來(lái)遍歷它們。典型的是函數(shù)的argument參數(shù),還有像調(diào)用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對(duì)象都屬于偽數(shù)組。可以使用Array.prototype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對(duì)象。

function log(){      var args = Array.prototype.slice.call(arguments);  
//為了使用unshift數(shù)組方法,將argument轉(zhuǎn)化為真正的數(shù)組
      args.unshift('(app)'); 
      console.log.apply(console, args);};

Javascript中callee和caller的作用?

caller是返回一個(gè)對(duì)函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù);

callee是返回正在被執(zhí)行的function函數(shù),也就是所指定的function對(duì)象的正文。

請(qǐng)描述一下cookies,sessionStorage和localStorage的區(qū)別

sessionStorage用于本地存儲(chǔ)一個(gè)會(huì)話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁(yè)面才能訪問(wèn)并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷(xiāo)毀。因此sessionStorage不是一種持久化的本地存儲(chǔ),僅僅是會(huì)話級(jí)別的存儲(chǔ)。而localStorage用于持久化的本地存儲(chǔ),除非主動(dòng)刪除數(shù)據(jù),否則數(shù)據(jù)是永遠(yuǎn)不會(huì)過(guò)期的。

web storage和cookie的區(qū)別

Web Storage的概念和cookie相似,區(qū)別是它是為了更大容量存儲(chǔ)設(shè)計(jì)的。Cookie的大小是受限的,并且每次你請(qǐng)求一個(gè)新的頁(yè)面的時(shí)候Cookie都會(huì)被發(fā)送過(guò)去,這樣無(wú)形中浪費(fèi)了帶寬,另外cookie還需要指定作用域,不可以跨域調(diào)用。
除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開(kāi)發(fā)者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務(wù)器進(jìn)行交互,作為HTTP規(guī)范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲(chǔ)”數(shù)據(jù)而生。

統(tǒng)計(jì)字符串中字母?jìng)€(gè)數(shù)或統(tǒng)計(jì)最多字母數(shù)。

var str = "aaaabbbccccddfgh";var obj  = {};for(var i=0;i<str.length;i++){    var v = str.charAt(i);    if(obj[v] && obj[v].value == v){
        obj[v].count = ++ obj[v].count;    }else{
        obj[v] = {};
        obj[v].count = 1;
        obj[v].value = v;    }}for(key in obj){    document.write(obj[key].value +'='+obj[key].count+'&nbsp;'); // a=4  b=3  c=4  d=2  f=1  g=1  h=1 }

jQuery的事件委托方法on、live、delegate之間有什么區(qū)別?

如何理解閉包?

跨域請(qǐng)求資源的方法有哪些?

談?wù)劺厥諜C(jī)制方式及內(nèi)存管理

開(kāi)發(fā)過(guò)程中遇到的內(nèi)存泄露情況,如何解決的?

HTTP

一次完整的HTTP事務(wù)是怎樣的一個(gè)過(guò)程?

基本流程:

a. 域名解析

b. 發(fā)起TCP的3次握手

c. 建立TCP連接后發(fā)起http請(qǐng)求

d. 服務(wù)器端響應(yīng)http請(qǐng)求,瀏覽器得到html代碼

e. 瀏覽器解析html代碼,并請(qǐng)求html代碼中的資源

f. 瀏覽器對(duì)頁(yè)面進(jìn)行渲染呈現(xiàn)給用戶

HTTP的狀態(tài)碼有哪些?

HTTPS是如何實(shí)現(xiàn)加密?

算法相關(guān)

手寫(xiě)數(shù)組快速排序

關(guān)于快排算法的詳細(xì)說(shuō)明,可以參考阮一峰老師的文章快速排序
"快速排序"的思想很簡(jiǎn)單,整個(gè)排序過(guò)程只需要三步:
(1)在數(shù)據(jù)集之中,選擇一個(gè)元素作為"基準(zhǔn)"(pivot)。
(2)所有小于"基準(zhǔn)"的元素,都移到"基準(zhǔn)"的左邊;所有大于"基準(zhǔn)"的元素,都移到"基準(zhǔn)"的右邊。
(3)對(duì)"基準(zhǔn)"左邊和右邊的兩個(gè)子集,不斷重復(fù)第一步和第二步,直到所有子集只剩下一個(gè)元素為止。
參考代碼:

 var quickSort = function(arr) {
  if (arr.length <= 1) { return arr; }
  var pivotIndex = Math.floor(arr.length / 2);
  var pivot = arr.splice(pivotIndex, 1)[0];
  var left = [];
  var right = [];
  for (var i = 0; i < arr.length; i++){
    if (arr[i] < pivot) {
      left.push(arr[i]);
    } else {
      right.push(arr[i]);
    }
  }
  return quickSort(left).concat([pivot], quickSort(right));};

JavaScript實(shí)現(xiàn)二分法查找

二分法查找,也稱折半查找,是一種在有序數(shù)組中查找特定元素的搜索算法。查找過(guò)程可以分為以下步驟:
(1)首先,從有序數(shù)組的中間的元素開(kāi)始搜索,如果該元素正好是目標(biāo)元素(即要查找的元素),則搜索過(guò)程結(jié)束,否則進(jìn)行下一步。
(2)如果目標(biāo)元素大于或者小于中間元素,則在數(shù)組大于或小于中間元素的那一半?yún)^(qū)域查找,然后重復(fù)第一步的操作。
(3)如果某一步數(shù)組為空,則表示找不到目標(biāo)元素。
參考代碼:

     // 非遞歸算法
        function binary_search(arr, key) {            var low = 0,
                high = arr.length - 1;            while(low <= high){                var mid = parseInt((high + low) / 2);                if(key == arr[mid]){                    return  mid;                }else if(key > arr[mid]){
                    low = mid + 1;                }else if(key < arr[mid]){
                    high = mid -1;                }else{                    return -1;                }            }        };        var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];        var result = binary_search(arr,10);        alert(result); // 9 返回目標(biāo)元素的索引值
    // 遞歸算法
        function binary_search(arr,low, high, key) {            if (low > high){                return -1;            }            var mid = parseInt((high + low) / 2);            if(arr[mid] == key){                return mid;            }else if (arr[mid] > key){
                high = mid - 1;                return binary_search(arr, low, high, key);            }else if (arr[mid] < key){
                low = mid + 1;                return binary_search(arr, low, high, key);            }        };        var arr = [1,2,3,4,5,6,7,8,9,10,11,23,44,86];        var result = binary_search(arr, 0, 13, 10);        alert(result); // 9 返回目標(biāo)元素的索引值

Web安全

你所了解到的Web攻擊技術(shù)

(1)XSS(Cross-Site Scripting,跨站腳本攻擊):指通過(guò)存在安全漏洞的Web網(wǎng)站注冊(cè)用戶的瀏覽器內(nèi)運(yùn)行非法的HTML標(biāo)簽或者JavaScript進(jìn)行的一種攻擊。
(2)SQL注入攻擊
(3)CSRF(Cross-Site Request Forgeries,跨站點(diǎn)請(qǐng)求偽造):指攻擊者通過(guò)設(shè)置好的陷阱,強(qiáng)制對(duì)已完成的認(rèn)證用戶進(jìn)行非預(yù)期的個(gè)人信息或設(shè)定信息等某些狀態(tài)更新。

前端性能

如何優(yōu)化圖像、圖像格式的區(qū)別?

瀏覽器是如何渲染頁(yè)面的?

設(shè)計(jì)模式

對(duì)MVC、MVVM的理解

正則表達(dá)式

寫(xiě)一個(gè)function,清除字符串前后的空格。(兼容所有瀏覽器)

function trim(str) {    if (str && typeof str === "string") {        return str.replace(/(^\s*)|(\s*)$/g,""); //去除前后空白符
    }}

使用正則表達(dá)式驗(yàn)證郵箱格式

    var reg = /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/;    var email = "example@qq.com";    console.log(reg.test(email));  // true

職業(yè)規(guī)劃

對(duì)前端工程師這個(gè)職位你是怎么樣理解的?

a. 前端是最貼近用戶的程序員,前端的能力就是能讓產(chǎn)品從 90分進(jìn)化到 100 分,甚至更好

b. 參與項(xiàng)目,快速高質(zhì)量完成實(shí)現(xiàn)效果圖,精確到1px;

c. 與團(tuán)隊(duì)成員,UI設(shè)計(jì),產(chǎn)品經(jīng)理的溝通;

d. 做好的頁(yè)面結(jié)構(gòu),頁(yè)面重構(gòu)和用戶體驗(yàn);

e. 處理hack,兼容、寫(xiě)出優(yōu)美的代碼格式;

f. 針對(duì)服務(wù)器的優(yōu)化、擁抱最新前端技術(shù)。

 


返回頂部
精品久久久久久亚洲精品_成人午夜网站_www日本高清_亚洲精品久久久久午夜福

      9000px;">

          91在线高清观看| 夜夜精品视频一区二区| 欧美激情在线看| 精品亚洲porn| 精品少妇一区二区三区| 国产精品蜜臀在线观看| 成人免费视频一区二区| 亚洲天堂精品视频| 欧洲一区在线电影| 男男gaygay亚洲| 欧美大片一区二区三区| 成人一区在线观看| 亚洲国产视频a| 日韩一区二区三区免费看 | 99精品久久99久久久久| 午夜欧美视频在线观看| 久久蜜桃香蕉精品一区二区三区| 91在线精品秘密一区二区| 午夜久久久久久电影| 久久伊99综合婷婷久久伊| 日本韩国欧美国产| 国产一区三区三区| 午夜国产精品影院在线观看| 国产精品毛片久久久久久久 | 日本福利一区二区| 国产在线视视频有精品| 亚洲影视资源网| 国产精品久久福利| 精品粉嫩超白一线天av| 欧美日韩国产不卡| 92精品国产成人观看免费| 九一九一国产精品| 亚洲va国产va欧美va观看| 中文字幕中文在线不卡住| 欧美精品视频www在线观看| www.久久久久久久久| 国产高清视频一区| 日本在线不卡一区| 亚洲综合小说图片| 国产日韩v精品一区二区| 日韩女优电影在线观看| 欧美日韩专区在线| 99精品欧美一区二区蜜桃免费| 国产美女av一区二区三区| 亚洲va欧美va天堂v国产综合| 亚洲少妇屁股交4| 国产精品福利一区| 国产精品女人毛片| 国产精品另类一区| 国产女人水真多18毛片18精品视频 | 欧美成人艳星乳罩| 538在线一区二区精品国产| 91久久香蕉国产日韩欧美9色| 丁香婷婷综合色啪| 国产伦精品一区二区三区免费迷| 久久成人免费电影| 国产精品亚洲人在线观看| 久久99日本精品| 国产精品99久久久久久宅男| 国产成人精品亚洲日本在线桃色 | 99国产麻豆精品| 日本二三区不卡| 欧美精品国产精品| 日韩欧美国产不卡| 国产午夜精品久久久久久免费视| 亚洲国产精品二十页| 中文字幕一区二区三区视频| 亚洲激情自拍视频| 日韩影院免费视频| 国产一区二区三区免费| 成人精品视频一区二区三区 | 欧美日本免费一区二区三区| 欧美一卡2卡3卡4卡| 精品国一区二区三区| 26uuuu精品一区二区| 国产精品入口麻豆九色| 一区二区三区四区在线免费观看| 日日夜夜精品免费视频| 美女任你摸久久| 91婷婷韩国欧美一区二区| 欧美日韩一二区| 久久久美女艺术照精彩视频福利播放 | 欧美日韩高清影院| 国产嫩草影院久久久久| 亚洲香蕉伊在人在线观| 亚洲精品福利视频网站| 久久久777精品电影网影网| 欧美一级高清片| 日韩美女主播在线视频一区二区三区| 久久久国产精华| 亚洲尤物在线视频观看| 韩国毛片一区二区三区| 色狠狠综合天天综合综合| 日韩女同互慰一区二区| 亚洲女人的天堂| 久久精品久久精品| 91一区二区三区在线播放| 欧美第一区第二区| 亚洲成a人片在线观看中文| 国产成人精品1024| 制服.丝袜.亚洲.中文.综合| 中文字幕制服丝袜成人av| 欧美精品自拍偷拍| 国产精品久久精品日日| 久久99久久久久久久久久久| 欧美最猛性xxxxx直播| 欧美国产成人精品| 黑人精品欧美一区二区蜜桃| 欧美日韩成人高清| 亚洲女子a中天字幕| 国产精品一区二区在线看| 欧美一区二区三区啪啪| 午夜精品久久久| 色婷婷精品久久二区二区蜜臀av | 欧美在线观看18| 亚洲免费观看在线观看| 国产一区二区三区精品视频| 日韩欧美美女一区二区三区| 亚洲线精品一区二区三区| 色婷婷精品久久二区二区蜜臂av| 丁香婷婷综合激情五月色| 狠狠色狠狠色综合| 欧美色图第一页| 国产精品久久福利| 国产一区二区三区四区在线观看| 日韩欧美中文一区| 日韩电影在线一区二区三区| 在线观看亚洲精品视频| 亚洲欧美日韩国产成人精品影院| 岛国精品一区二区| 国产欧美日韩亚州综合| 国产精品白丝av| 国产精品毛片大码女人| 成人av在线资源网| 一色屋精品亚洲香蕉网站| 不卡欧美aaaaa| 一区二区不卡在线视频 午夜欧美不卡在| 色综合久久66| 午夜久久久久久电影| 91精品国产综合久久久久久漫画| 国产成人精品免费在线| 综合久久久久综合| 成人一区二区三区在线观看 | 亚洲视频中文字幕| 91视视频在线观看入口直接观看www| 中文字幕人成不卡一区| 欧美在线色视频| 水野朝阳av一区二区三区| 日韩丝袜美女视频| 麻豆91精品91久久久的内涵| 国产欧美一区二区精品秋霞影院| 国产成人精品综合在线观看| 亚洲免费观看视频| 欧美一区二区三区视频在线观看| 精品一区二区免费看| 国产丝袜在线精品| 欧美综合一区二区| 国产精品一卡二卡| 亚洲一级片在线观看| 久久久久久综合| 精品视频一区 二区 三区| 国产成人在线看| 日本中文字幕一区| 国产精品久久久爽爽爽麻豆色哟哟 | 韩日av一区二区| 成人欧美一区二区三区视频网页| 欧美三级视频在线| 麻豆国产精品一区二区三区 | 91视频在线看| 日日夜夜免费精品| 中文在线一区二区| 欧美一区二区人人喊爽| 99久久精品国产导航| 日韩电影在线观看电影| ...中文天堂在线一区| 亚洲精品一区二区三区福利| 欧美性色黄大片| 91小视频免费观看| 国产大陆精品国产| 六月丁香婷婷久久| 欧美午夜不卡在线观看免费| 国产精品综合久久| 婷婷久久综合九色综合伊人色| 国产日韩av一区二区| 欧美一二三四区在线| 欧美午夜视频网站| 狠狠色丁香婷婷综合久久片| 亚洲国产成人porn| 夜夜嗨av一区二区三区网页| 中文文精品字幕一区二区| 久久婷婷久久一区二区三区| 91精品免费在线观看| 欧美色中文字幕| 欧美专区日韩专区| 欧美少妇xxx| 欧美亚洲另类激情小说| 成人a级免费电影| av成人免费在线| 色诱亚洲精品久久久久久| jizz一区二区|