amd

1、什么是模塊化,解釋AMD/CommonJS/ES6 模塊

(評(píng)分標(biāo)準(zhǔn):模塊化2分,AMD 2分,CommonJS 3分,ES6 3分)

模塊化是一種將系統(tǒng)分離成獨(dú)立功能部分的方法,可將系統(tǒng)分割成獨(dú)立的功能部分,嚴(yán)格定義模塊接口、模塊間具有透明性。有了模塊,我們就可以更方便地使用別人的代碼,想要什么功能,就加載什么模塊。

AMD/CommonJS/ES6 模塊就是現(xiàn)在通行的Javascript模塊規(guī)范

AMD:是"Asynchronous Module Definition"的縮寫,意思就是"異步模塊定義"。它采用異步方式加載模塊,模塊的加載不影響它后面語句的運(yùn)行。所有依賴這個(gè)模塊的語句,都定義在一個(gè)回調(diào)函數(shù)中,等到加載完成之后,這個(gè)回調(diào)函數(shù)才會(huì)運(yùn)行

CommonJS:JavaScript是一個(gè)強(qiáng)大面向?qū)ο笳Z言,它有很多快速高效的解釋器。官方JavaScript標(biāo)準(zhǔn)定義的API是為了構(gòu)建基于瀏覽器的應(yīng)用程序。然而,并沒有定于一個(gè)用于更廣泛的應(yīng)用程序的標(biāo)準(zhǔn)庫。

CommonJS API定義很多普通應(yīng)用程序(主要指非瀏覽器的應(yīng)用)使用的API,從而填補(bǔ)了這個(gè)空白。它的終極目標(biāo)是提供一個(gè)類似Python,Ruby和Java標(biāo)準(zhǔn)庫。這樣的話,開發(fā)者可以使用CommonJS API編寫應(yīng)用程序,然后這些應(yīng)用可以運(yùn)行在不同的JavaScript解釋器和不同的主機(jī)環(huán)境中。在兼容CommonJS的系統(tǒng)中,你可以實(shí)用JavaScript程序開發(fā):

a.服務(wù)器端JavaScript應(yīng)用程序

b.命令行工具

c.圖形界面應(yīng)用程序

概括來說,CommonJS規(guī)范定義讓Javascript運(yùn)行在其他的環(huán)境中,而非僅僅在瀏覽器

modules是ES6引入的最重要一個(gè)特性。

modules規(guī)范分兩部分,一部分是如何導(dǎo)出,一部分是如何導(dǎo)入。

2、說說你對(duì)Node.js的理解,npm又是什么?

(評(píng)分標(biāo)準(zhǔn):NodeJS 5分,npm 5分)

Node.js 是一個(gè)基于 Chrome V8 引擎的 JavaScript 運(yùn)行環(huán)境。?Node.js 使用了一個(gè)事件驅(qū)動(dòng)、非阻塞式 I/O 的模型,使其輕量又高效。Node.JS逐漸發(fā)展成一個(gè)成熟的開發(fā)平臺(tái),吸引了許多開發(fā)者。有許多大型高流量網(wǎng)站都采用Node.JS進(jìn)行開發(fā),此外,開發(fā)人員還可以使用它來開發(fā)一些快速移動(dòng)Web框架。

npm(NodeJS Package manager)是隨同NodeJS一起安裝的包管理工具,能解決NodeJS代碼部署上的很多問題,常見的使用場(chǎng)景有以下幾種:

允許用戶從npm服務(wù)器下載別人編寫的第三方包到本地使用。

允許用戶從npm服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。

允許用戶將自己編寫的包或命令行程序上傳到npm服務(wù)器供別人使用。

3、Gulp是什么?

(評(píng)分標(biāo)準(zhǔn):自動(dòng)化構(gòu)建工具4分,提高效率 2分,構(gòu)建任務(wù)2分)

基于NodeJs的自動(dòng)化構(gòu)建工具,通過gulpfile.js文件定義任務(wù),gulp taskname 執(zhí)行任務(wù),gulp是前端開發(fā)過程中對(duì)代碼進(jìn)行構(gòu)建的工具,是自動(dòng)化項(xiàng)目的構(gòu)建利器;不僅能對(duì)網(wǎng)站資源進(jìn)行優(yōu)化,而且在開發(fā)過程中很多重復(fù)的任務(wù)能夠使用正確的工具自動(dòng)完成;使用gulp,我們不僅可以很愉快的編寫代碼,而且大大提高我們的工作效率。

4、談?wù)勀銓?duì)webpack的理解

(評(píng)分標(biāo)準(zhǔn):模塊加載器2分,資源模塊化4分,優(yōu)勢(shì)4分)

webpack是一款模塊加載器兼打包工具,它能把各種資源,例如JS(含JSX)、coffee、樣式(含less/sass)、圖片等都作為模塊來使用和處理。

我們可以直接使用require(XXX) 的形式來引入各模塊,即使它們可能需要經(jīng)過編譯(比如JSX和sass),但我們無須在上面花費(fèi)太多心思,因?yàn)?webpack 有著各種健全的加載器(loader)在默默處理這些事情。

其優(yōu)勢(shì)歸類為如下幾個(gè):

1. webpack 是以 commonJS 的形式來書寫腳本滴,但對(duì) AMD/CMD的支持也很全面,方便舊項(xiàng)目進(jìn)行代碼遷移。

2. 資源模塊化。

3. 開發(fā)便捷,能替代部分 grunt/gulp 的工作,比如打包、壓縮混淆、圖片轉(zhuǎn)base64等。

4. 擴(kuò)展性強(qiáng),插件機(jī)制完善

5、什么是Promise?如何使用

(評(píng)分標(biāo)準(zhǔn):ES6新增特性2分,解決回調(diào)地獄/回調(diào)金字塔4分,基本api 4分)

ES6 原生提供了 Promise 對(duì)象。

所謂Promise,就是一個(gè)對(duì)象,用來傳遞異步操作的消息。它代表了某個(gè)未來才會(huì)知道結(jié)果的事件(通常是一個(gè)異步操作),并且這個(gè)事件提供統(tǒng)一的 API,可供進(jìn)一步處理。

Promise 對(duì)象有以下兩個(gè)特點(diǎn)。

a.對(duì)象的狀態(tài)不受外界影響。

b.一旦狀態(tài)改變,就不會(huì)再變,任何時(shí)候都可以得到這個(gè)結(jié)果。

有了Promise 對(duì)象,就可以將異步操作以同步操作的流程表達(dá)出來,避免了層層嵌套的回調(diào)函數(shù)(解決回調(diào)地獄/回調(diào)金字塔)。此外,Promise 對(duì)象提供統(tǒng)一的接口,使得控制異步操作更加容易。

基本的api

Promise.resolve()//已完成

Promise.reject()//已失敗

Promise.prototype.then()// 異步函數(shù)完成調(diào)用

Promise.prototype.catch()// 異步函數(shù)異常

Promise.all() // 所有的完成

Promise.race() // 競(jìng)速,完成一個(gè)即可

6、ES6中有哪些新增了哪些特性?

(評(píng)分標(biāo)準(zhǔn):ES6新增特性每點(diǎn)2分)

a. let, const 用來聲明變量的,let 新增了塊級(jí)作用域,const定義常量

b.class, extends, super 新的class寫法讓對(duì)象原型的寫法更加清晰、更像面向?qū)ο缶幊痰恼Z法,也更加通俗易懂。

c. arrow function 用它來寫function比原來的寫法要簡(jiǎn)潔清晰

d. template string 字符串模板

e. destructuring 解構(gòu),ES6允許按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值

7、什么是箭頭函數(shù)?且寫出一個(gè)使用例子

(評(píng)分標(biāo)準(zhǔn):形式2分,this值3分,例子5分)

ES6中新增特性,使用箭頭函數(shù)來寫function比原來的寫法要簡(jiǎn)潔清晰,箭頭函數(shù)沒有自己的this,繼承的是外層的this

形式:()=>{}

var person = {

name: "Shafee",

say: function() {

setTimeout(()=> {

alert("hello ," + this.name)

}, 1000)

}

};

person.say();

8、說說你對(duì)Express的看法

(評(píng)分標(biāo)準(zhǔn):概念2分,豐富中間件5分,腳手架2分,其他一分)

Express 是一個(gè)基于 Node.js 平臺(tái)的極簡(jiǎn)、靈活的 web 應(yīng)用開發(fā)框架,它提供一系列強(qiáng)大的特性,幫助你創(chuàng)建各種 Web 和移動(dòng)設(shè)備應(yīng)用。提供了豐富的 HTTP 快捷方法和任意排列組合的 Connect 中間件,讓創(chuàng)建健壯、友好的 API 變得既快速又簡(jiǎn)單。擴(kuò)展了 Web 應(yīng)用所需的基本功能。使用使用腳手架express-generator快速創(chuàng)建express應(yīng)用

9、比較mongodb跟mysql的異同

(評(píng)分標(biāo)準(zhǔn):特點(diǎn)各5分)

mongodb與mysql命令對(duì)比

mysql 傳統(tǒng)的關(guān)系數(shù)據(jù)庫一般由數(shù)據(jù)庫(database)、表(table)、記錄(record)三個(gè)層次概念組成。

mongodb 非關(guān)系型數(shù)據(jù)庫,是由數(shù)據(jù)庫(database)、集合(collection)、文檔對(duì)象(document)三個(gè)層次組成。

mongodb(文檔型數(shù)據(jù)庫):提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)

1、基于分布式文件存儲(chǔ)

2、高負(fù)載情況下添加更多節(jié)點(diǎn),可以保證服務(wù)器性能

3、將數(shù)據(jù)存儲(chǔ)為一個(gè)文檔

10、使用Node.js中的http模塊創(chuàng)建一個(gè)web服務(wù)器

(評(píng)分標(biāo)準(zhǔn):模塊加載2分,創(chuàng)建服務(wù)器2分,設(shè)置像迎頭2分,響應(yīng)內(nèi)容2分,結(jié)束響應(yīng)1分,監(jiān)聽1分)

var http = require("http"); // 加載http模塊

// http.createServer 返回一個(gè)http.Server實(shí)例

var server = http.createServer(function(request, response) {

// request 請(qǐng)求

// response響應(yīng)

response.writeHead(200, {"Content-Type":"text/html"}); //設(shè)置響應(yīng)頭,包含狀態(tài)碼以及MIME 長(zhǎng)度..

response.write("

hello nodejs

");//響應(yīng)內(nèi)容

response.end(); //結(jié)束響應(yīng)

});

server.listen(3000);

console.log("服務(wù)器開始運(yùn)行...");

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,606評(píng)論 6 533
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,582評(píng)論 3 418
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,540評(píng)論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,028評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,801評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,223評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,294評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,442評(píng)論 0 289
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,976評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,800評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,996評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,543評(píng)論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,233評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,926評(píng)論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,702評(píng)論 3 392
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,991評(píng)論 2 374

推薦閱讀更多精彩內(nèi)容