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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 職業(yè)指南 揭秘一線互聯(lián)網(wǎng)JS高級(jí)面試題

揭秘一線互聯(lián)網(wǎng)JS高級(jí)面試題

更新時(shí)間:2022-12-20 15:26:53 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1139次

作為Java程序員對(duì)于Js絕對(duì)不陌生,而真正的做到深入理解與應(yīng)用,這正是面試過程中對(duì)高級(jí)程序員崗位的硬性需求,這也是目前很多面試者大多的知識(shí)薄弱點(diǎn),今天小編總結(jié)的這套面試題,從起因到原理,讓你順利的度過面試難關(guān):

js高級(jí)面試題

1.什么是函數(shù)柯里化?

答:是把接受多個(gè)參數(shù)的函數(shù)變換成接受一個(gè)單一參數(shù)(最初函數(shù)的第一個(gè)參數(shù))的函數(shù),并且返回接受余下的參數(shù)而且返回結(jié)果的新函數(shù)的技術(shù)。

把接受多個(gè)參數(shù)的函數(shù)轉(zhuǎn)換成接受一個(gè)單一參數(shù)的函數(shù)

// 普通方法
var add = function(x, y) {
    return x + y;
}    
add(3, 4)       //7

// 柯里化 var foo = function(x) {

    return function(y) {
        return x + y
    }
}    
foo(3)(4)       // 7    

2.什么是REST,用起來有什么好處?

答:

REST是一種設(shè)計(jì)API的模式。最常用的數(shù)據(jù)格式是JSON。由于JSON能直接被JavaScript讀取,所以,以JSON格式編寫的REST風(fēng)格的API具有簡單、易讀、易用的特點(diǎn)。通過REST模式設(shè)計(jì)的API可以把web

app 全部功能進(jìn)行封裝,可以很容易的實(shí)現(xiàn)前后端分離,使的前端代碼易編寫,后端代碼易測(cè)試。

一直在測(cè)試REST模式的WEB SERVICE接口,客戶端的HTTP的請(qǐng)求方式一般分為四種:GET、POST、PUT、DELETE,這四種請(qǐng)求方式有什么不同呢。簡單的說,GET就是獲取資源,POST就是創(chuàng)建資源,PUT就是更新資源,DELETE就是刪除資源。具體來說:

PUT:PUT請(qǐng)求是向服務(wù)器端發(fā)送數(shù)據(jù)的,從而改變信息,該請(qǐng)求就像數(shù)據(jù)庫的update操作一樣,用來修改數(shù)據(jù)的內(nèi)容,但是不會(huì)增加數(shù)據(jù)的種類等,也就是說無論進(jìn)行多少次PUT操作,資源不會(huì)增加。

DELETE:DELETE請(qǐng)求顧名思義,就是用來刪除某一個(gè)資源的,該請(qǐng)求就像數(shù)據(jù)庫的delete操作。

GET:GET操作是安全的。所謂安全是指不管進(jìn)行多少次操作,資源的狀態(tài)都不會(huì)改變,GET只是訪問和查看資源。

POST:操作不是安全的,每次請(qǐng)求都會(huì)創(chuàng)建資源,當(dāng)我們多次發(fā)出POST請(qǐng)求后,其結(jié)果是創(chuàng)建出了多個(gè)資源。還有一點(diǎn)需要注意的就是,創(chuàng)建操作可以使用POST,也可以使用PUT,區(qū)別在于POST 是作用在一個(gè)集合資源之上的(/uri),而PUT操作是作用在一個(gè)具體資源之上的(/uri/xxx),再通俗點(diǎn)說,如果URL可以在客戶端確定,那么就使用PUT,如果是在服務(wù)端確定,那么就使用POST,比如說很多資源使用數(shù)據(jù)庫自增主鍵作為標(biāo)識(shí)信息,而創(chuàng)建的資源的標(biāo)識(shí)信息到底是什么只能由服務(wù)端提供,這個(gè)時(shí)候就必須使用POST。

下面說說GET和POST的區(qū)別:

1、GET請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后(就是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,如:getCitycode?lat=100.22&lon=35.33

POST把提交的數(shù)據(jù)則放置在是HTTP包的包體中。

2、在瀏覽器上,GET方式提交的數(shù)據(jù)是有限制的,例如有時(shí)候請(qǐng)求的URL太長,會(huì)返回錯(cuò)誤;但如果是客戶端GET請(qǐng)求,是沒有數(shù)據(jù)的限制的。POST沒有限制,可傳較大量的數(shù)據(jù)。

3、POST的安全性要比GET的安全性高。這里所說的安全性和上面GET提到的“安全”不是同個(gè)概念。上面“安全”的含義僅僅是不作數(shù)據(jù)修改,而這里安全的含義是真正的Security的含義,比如:通過GET提交數(shù)據(jù),用戶名和密碼將明文出現(xiàn)在URL上,查看瀏覽器的歷史紀(jì)錄,就可以查看到GET請(qǐng)求的參數(shù),比如登錄的帳號(hào)密碼、搜索關(guān)鍵字、個(gè)人信息等。

PUT和POST方法語義中都有修改資源狀態(tài)的意思,因此都不是安全的。但是PUT方法是冪等的,POST方法不是冪等的,這么設(shè)計(jì)的理由是:

HTTP協(xié)議規(guī)定,POST方法修改資源狀態(tài)時(shí),URL指示的是該資源的父級(jí)資源,待修改資源的ID信息在請(qǐng)求體中攜帶。而PUT方法修改資源狀態(tài)時(shí),URL直接指示待修改資源。因此,同樣是創(chuàng)建資源,重復(fù)提交POST請(qǐng)求可能產(chǎn)生兩個(gè)不同的資源,而重復(fù)提交PUT請(qǐng)求只會(huì)對(duì)其URL中指定的資源起作用,也就是只會(huì)創(chuàng)建一個(gè)資源。

3.什么是變量提升、函數(shù)提升?

答: 變量提升:

簡單說就是在js代碼執(zhí)行前引擎會(huì)先進(jìn)行預(yù)編譯,預(yù)編譯期間會(huì)將變量聲明與函數(shù)聲明提升至其對(duì)應(yīng)作用域的最頂端,函數(shù)內(nèi)聲明的變量只會(huì)提升至該函數(shù)作用域最頂層。

當(dāng)函數(shù)內(nèi)部定義的一個(gè)變量與外部相同時(shí),那么函數(shù)體內(nèi)的這個(gè)變量就會(huì)被上升到最頂端。 舉例來說: console.log(a); //

undefined var a = 3;

//預(yù)編譯后的代碼結(jié)構(gòu)可以看做如下運(yùn)行順序 var a; // 將變量a的聲明提升至最頂端,賦值邏輯不提升。 console.log(a);

// undefined a = 3; // 代碼執(zhí)行到原位置即執(zhí)行原賦值邏輯

函數(shù)提升: 函數(shù)提升只會(huì)提升函數(shù)聲明式寫法,函數(shù)表達(dá)式的寫法不存在函數(shù)提升。

函數(shù)提升的優(yōu)先級(jí)大于變量提升的優(yōu)先級(jí),即函數(shù)提升在變量提升之上。

4.什么是事件冒泡,它是如何工作的?如何阻止事件冒泡?

答:

在一個(gè)對(duì)象上觸發(fā)某類事件(比如單擊onclick事件),如果此對(duì)象定義了此事件的處理程序,那么此事件就會(huì)調(diào)用這個(gè)處理程序,如果沒有定義此事件處理程序或者事件返回true,那么這個(gè)事件會(huì)向這個(gè)對(duì)象的父級(jí)對(duì)象傳播,從里到外,直至它被處理(父級(jí)對(duì)象所有同類事件都將被激活),或者它到達(dá)了對(duì)象層次的最頂層,即document對(duì)象(有些瀏覽器是window)

阻止事件冒泡的幾種方法 第一種: event.stopPropagation(); 第二種: return false; 第三種:

event.preventDefault();

5.簡單說說js中的繼承?

答: 有以下六種方法

1.原型鏈繼承 JavaScript實(shí)現(xiàn)繼承的基本思想:通過原型將一個(gè)引用類型繼承另一個(gè)引用類型的屬性和方法。

2.借用構(gòu)造函數(shù)繼承(偽造對(duì)象或經(jīng)典繼承) JavaScript實(shí)現(xiàn)繼承的基本思想:在子類構(gòu)造函數(shù)內(nèi)部調(diào)用超類型構(gòu)造函數(shù)。 通過使用apply()和call()方法可以在新創(chuàng)建的子類對(duì)象上執(zhí)行構(gòu)造函數(shù)。

3.組合繼承(原型+借用構(gòu)造)(偽經(jīng)典繼承) JavaScript實(shí)現(xiàn)繼承的基本思想:將原型鏈和借用構(gòu)造函數(shù)的技術(shù)組合在一塊,從而發(fā)揮兩者之長的一種繼承模式。

將原型鏈和借用構(gòu)造函數(shù)的技術(shù)組合到一起,從而取長補(bǔ)短發(fā)揮兩者長處的一種繼承模式。

4.原型式繼承 JavaScript實(shí)現(xiàn)繼承的基本思想:借助原型可以基于已有的對(duì)象創(chuàng)建新對(duì)象,同時(shí)還不必須因此創(chuàng)建自定義的類型。

5.寄生式繼承 JavaScript實(shí)現(xiàn)繼承的基本思想:創(chuàng)建一個(gè)僅用于封裝繼承過程的函數(shù),該函數(shù)在內(nèi)部以某種方式來增強(qiáng)對(duì)象,最后再像真正是它做了所有工作一樣返回對(duì)象。

寄生式繼承是原型式繼承的加強(qiáng)版。

6.寄生組合式繼承 JavaScript實(shí)現(xiàn)繼承的基本思想:通過借用函數(shù)來繼承屬性,通過原型鏈的混成形式來繼承方法。

以上就是“揭秘一線互聯(lián)網(wǎng)JS高級(jí)面試題”,你能回答上來嗎?如果想要了解更多的Java面試題相關(guān)內(nèi)容,可以關(guān)注動(dòng)力節(jié)點(diǎn)Java官網(wǎng)。

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

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 欧美在线成人午夜网站 | 成人18视频在线观看 | 欧美日韩成人在线视频 | 欧美不卡视频在线 | 国产成人三级 | 干妞网免费视频 | 91亚洲国产在人线播放午夜 | 欧美蜜桃 | 99re视频在线观看 | 午夜欧美日韩 | 国产一区二区三区免费播放 | 日朝欧美亚洲精品 | 青草草在线视频 | 2022精品福利在线小视频 | 成人高清视频在线观看 | 亚洲精品精品 | 一级片免费的 | 日本欧美一区二区三区片 | 黄色的网站在线观看 | 日韩一级欧美一级在线观看 | 国产丝袜在线视频 | 日韩在线不卡视频 | 永久网站 | 一二三四在线视频社区8 | 国产大片中文字幕 | 国产r67194吃奶视频 | 狠狠色狠狠色综合系列 | 欧类av怡春院 | 免费视频淫片aa毛片 | 神马午夜嘿嘿 | 欧美videos13_14| 狠狠色噜噜狠狠狠合久 | 狠狠乱 | 人人做人人干 | 亚洲欧美一区二区三区在线 | 日色视频 | 永久免费的啪啪免费的网址 | 一级aaa级毛片午夜在线播放 | 国产欧美精品一区aⅴ影院 国产欧美成人一区二区三区 | 特黄特级高清免费视频毛片 | 成人久久久精品乱码一区二区三区 |