最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

??低暶嬖囶}答案整理

2019-07-13 18:52 作者:Alice鐺鐺鐺  | 我要投稿


1. 閉包是什么?有什么優(yōu)點(diǎn)和缺點(diǎn)?

2. css中怎么使盒子上下居中(面試官說(shuō)水平居中太簡(jiǎn)單了orz...)?

3. js中本地存儲(chǔ)有哪些?有什么不同?

4. cookie中的session了解嗎?

5. 跨域了解嗎?

6. this的指向問(wèn)題?

7. vue使用的UI框架?

8. npm中的工具了解過(guò)嗎?(yarn)

9. Node.js了解嗎???

10. 詳細(xì)講一下項(xiàng)目?后端調(diào)用?

詳解:


1. 閉包是什么?有什么優(yōu)點(diǎn)和缺點(diǎn)?

? ? 解答:閉包是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù)。

? ?優(yōu)點(diǎn):① 能夠讀取函數(shù)內(nèi)部的變量;②讓這些變量一直存在于內(nèi)存中,不會(huì)在調(diào)用結(jié)束后被垃圾回收機(jī)制回收;

? ?缺點(diǎn):由于閉包會(huì)使用函數(shù)中的變量存在在內(nèi)存中,內(nèi)存消耗很大,所以不能濫用閉包;解決的辦法是退出函數(shù)之前,將不使用的局部變量刪除;


2. ?css中怎么使盒子上下居中(面試官說(shuō)水平居中太簡(jiǎn)單了)?

解答:方法一:

? ? 設(shè)置垂直居中的時(shí)候要注意,先給祖先元素`html`和`body`的高度設(shè)置為100%(默認(rèn)是0);并且清除默認(rèn)樣式(`margin`和`padding`都設(shè)置為0,否則瀏覽器就會(huì)出現(xiàn)滾動(dòng)條),然后給子盒子相對(duì)定位和位移`position:relative;top:50%;`,然后減去本身寬度的一半即可(`margin-top:負(fù)自身高度的一半` // `transform:translateY(-50%)` 向上偏移自身高度的一半;

? ? 注意:top、bottom、left、right的百分比值都是相對(duì)于包含塊的高度、寬度的;

方法二:

? ??彈性盒子。給父元素設(shè)置`display:flex; align-items:center;`設(shè)置body里的元素垂直居中;(`justify-content:center;`定義body里的元素水平居中)


3. ?js中本地存儲(chǔ)有哪些?有什么不同?

`cookie`、`localStorage`、`sessionStorage`;

? ?相同點(diǎn):都保存在瀏覽器端;

? ?不同點(diǎn)

? ?①傳遞方式不同

? ? `cookie`數(shù)據(jù)始終在同源的http請(qǐng)求中攜帶(即使不需要),即`cookie`在瀏覽器和服務(wù)器間來(lái)回傳遞。

? ? `sessionStorage`和`localStorage`不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。

? ?②數(shù)據(jù)大小不同

? ? (`cookie`數(shù)據(jù)還有路徑(path)的概念,可以限制cookie只屬于某個(gè)路徑下。)

? ? 存儲(chǔ)大小限制也不同,cookie數(shù)據(jù)不能超過(guò)4k,同時(shí)因?yàn)槊看蝖ttp請(qǐng)求都會(huì)攜帶`cookie`,所以cookie只適合保存很小的數(shù)據(jù),如會(huì)話標(biāo)識(shí)。

? ? `sessionStorage`和`localStorage` 雖然也有存儲(chǔ)大小的限制,但比cookie大得多,可以達(dá)到5M或更大。

? ?③數(shù)據(jù)有效期不同

? ? `sessionStorage`:僅在當(dāng)前瀏覽器窗口關(guān)閉前有效,自然也就不可能持久保持;

? ? `localStorage`:始終有效,窗口或?yàn)g覽器關(guān)閉也一直保存,因此用作持久數(shù)據(jù);

? ? `cookie`只在設(shè)置的cookie過(guò)期時(shí)間之前一直有效,即使窗口或?yàn)g覽器關(guān)閉。

? ?④作用域不同

? ? `sessionStorage`不在不同的瀏覽器窗口中共享,即使是同一個(gè)頁(yè)面;

? ? `localStorage `在所有同源窗口中都是共享的;

? ? `cookie`也是在所有同源窗口中都是共享的。


4. ?cookie中的session了解嗎?

?`cookie`和`sessiom`是兩種保持會(huì)話狀態(tài)的方法。

? ? cookie就是指客戶端在向服務(wù)端發(fā)起請(qǐng)求的時(shí)候,服務(wù)端會(huì)在進(jìn)行response的時(shí)候給當(dāng)前客戶端的一小段文本信息,并保存在當(dāng)前的客戶端的瀏覽器中,這一小段cookie文本信息也就是這個(gè)客戶端去訪問(wèn)服務(wù)端的通行證,有了這個(gè)通行證,以后當(dāng)這個(gè)客戶端再去訪問(wèn)服務(wù)端的時(shí)候,服務(wù)端便知道是誰(shuí)拿著通行證去進(jìn)行訪問(wèn)了。

? ? session和cookie的功能類似,也是一種保持會(huì)話狀態(tài)的方式,在用戶使用瀏覽器發(fā)起會(huì)話時(shí),服務(wù)器會(huì)為每一個(gè)用戶瀏覽器提供一個(gè)單獨(dú)的session對(duì)象來(lái)保存用戶的數(shù)據(jù),并將它保存在服務(wù)端,而當(dāng)用戶訪問(wèn)其他web資源的時(shí)候,則可以從保存用戶數(shù)據(jù)的session對(duì)象中把用戶數(shù)據(jù)抽取出來(lái)并進(jìn)行訪問(wèn)。

? ?區(qū)別:

? ?1. cookie的用戶數(shù)據(jù)是保存在用戶瀏覽器的cookie中的;

? ?session的用戶數(shù)據(jù)是保存在服務(wù)器為用戶瀏覽器單獨(dú)創(chuàng)建的session對(duì)象中的。

? ?2. 數(shù)據(jù)的讀取和調(diào)用,cookie可以采用request.getCookies這種方法;

? ? ? session則可以用request.Session的方法。

? ?3. 安全性,cookie是存儲(chǔ)在用戶瀏覽器中的;

? ? ? 而session是存儲(chǔ)在服務(wù)器上的,所以session比cookoe要相對(duì)安全;


5. ?跨域了解嗎?

跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。瀏覽器執(zhí)行`javascript`腳本時(shí),會(huì)檢查這個(gè)腳本屬于哪個(gè)頁(yè)面,如果不是同源頁(yè)面,就不會(huì)被執(zhí)行。

? ? ? 解決辦法:

? ? ? ①JSONP:注意JSONP只支持GET請(qǐng)求,不支持POST請(qǐng)求。

? ? ? 原理:ajax請(qǐng)求受同源策略影響,不允許進(jìn)行跨域請(qǐng)求,而script標(biāo)簽src屬性中的鏈接卻可以訪問(wèn)跨域的js腳本,利用這個(gè)特性,服務(wù)端不再返回JSON格式的數(shù)據(jù),而是返回一段調(diào)用某個(gè)函數(shù)的js代碼,在src中進(jìn)行了調(diào)用,這樣實(shí)現(xiàn)了跨域。

? ? ? ②代理:寫后端接口,在后端調(diào)用頁(yè)面拿到返回值返回給html文件。相當(dāng)于繞過(guò)了瀏覽器,就不會(huì)存在跨域問(wèn)題。

? ? ? ③PHP端修改header

? ? ? header('Access-Control-Allow-Origin:*');//允許所有來(lái)源訪問(wèn)

? ? ? header('Access-Control-Allow-Method:POST,GET');//允許訪問(wèn)的方式


6. ?this的指向問(wèn)題?

this的最終指向的是那個(gè)調(diào)用它的對(duì)象。

? ?改變this指向的方法:

? ?1. 使用箭頭函數(shù);

? ?2. 在函數(shù)內(nèi)部使用`_this=this;`

? ?3. 使用apply、call、bind;

? ?4. new實(shí)例化一個(gè)對(duì)象


7. ?vue使用的UI框架?

?animate.css是一款前端動(dòng)畫庫(kù),相似的有velocity-animate;

使用步驟

? ?1. 首先`npm install animate.css --save`;

? ?2. 然后在vue文件的script中引入`import animate from 'animate.css'`;

? ?3. 最后綁定元素使用,如下:

? ?<template>

? ? ? ?<div class="song">

? ? ? ? ? ?<p id="f" @click='fade'>hello</p>

? ? ? ?</div>

? ?</template>


? ?methods:{

? ? ? ?fade:function(){

? ? ? ? ? ?$('#f').addClass('animated bounceOutLeft')? ? ???}???}


部分api常見(jiàn):

fade: { title: '淡入淡出',? ? ? ? ? fadeIn: '淡入',? ? ? ? ? ? ? ? ? ? ? ?? fadeOut: '淡出'},

bounce: {title: '彈跳類',? ? ? ? ? bounceIn: '彈跳進(jìn)入',? ? ? ? ? ???bounceOut: '彈跳退出',},

zoom: { title: '縮放類',? ? ? ? ? ? zoomIn: '放大進(jìn)入',? ? ? ? ? ? ? ?? zoomOut: '縮小退出',},

rotate: {title: '旋轉(zhuǎn)類',? ? ? ? ? ? ?rotateIn: '順時(shí)針旋轉(zhuǎn)進(jìn)入',? ? ?rotateOut: '順時(shí)針旋轉(zhuǎn)退出',},

?flip: {title: '翻轉(zhuǎn)類',? ? ? ? ? ? ? ? ?flipInX: '水平翻轉(zhuǎn)進(jìn)入',? ? ? ? ??flipInY: '垂直翻轉(zhuǎn)進(jìn)入',

? ? ? ? flipOutX: '水平翻轉(zhuǎn)退出',? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? flipOutY: '垂直翻轉(zhuǎn)退出'},

strong: {title: '強(qiáng)調(diào)類',? ? ? ? ? ? bounce: '彈跳',? ? ? ? ? ? ? ? ? ? ? ? flash: '閃爍',

? ? ? ? ? ? pulse: '脈沖',??? ? ??? ? ? rubberBand: '橡皮筋',? ?? ? ? ? ? ?shake: '左右弱晃動(dòng)',

? ? ? ? ? ?swing: '上下擺動(dòng)',? ? ? ? tada: '縮放擺動(dòng)',? ? ? ? ??? ? ? ??? ?wobble: '左右強(qiáng)晃動(dòng)',

? ? ? ? ? ?jello: '拉伸抖動(dòng)'}


8. ?npm中的工具了解過(guò)嗎?(warn)

npm就是JavaScript的包管理工具。npm主要用來(lái)下載,安裝,管理第三方模塊。

? ?創(chuàng)建一個(gè)包描述文件:`npm init [-y]`

? ?查看包的信息 `npm info <package-name>`

? ?查看包的版本信息 `npm info <package-name> versions`

? ?安裝指定的包:`npm install <package-name>`

? ? 默認(rèn)會(huì)安裝在當(dāng)前目錄下的 node_modules 目錄下,如果 node_modules 不存在,則會(huì)自動(dòng)創(chuàng)建。

? ?本地安裝包,如果包里有可執(zhí)行文件,則npm會(huì)把可執(zhí)行文件安裝到 node_modules/.bin 目錄下。

? ?安裝指定版本的包:`npm install <package-name>@<version>`

? ?安裝包并記錄依賴,會(huì)在 package.json 中 dependencies 屬性記錄依賴`npm install <package-name> --save`

? ?卸載包:`npm uninstall <package-name>`

? ?更新包:`npm update <package-name>`

? ?全局安裝包,把包安裝在全局目錄,供所有項(xiàng)目使用:`npm install <package-name> -g`

? ?全局安裝包,如果包里有可執(zhí)行文件,則npm會(huì)把可執(zhí)行文件安裝到 node_modules 上一級(jí)目錄中。

? ?查看全局目錄:`npm root -g`

? ?修改全局目錄的路徑:`npm config set prefix ``"新路徑"`

默認(rèn)情況下全局安裝的包不能直接在項(xiàng)目中加載,如果要直接加載,需要在系統(tǒng)環(huán)境變量中添加一個(gè)名為 NODE_PATH 的變量,值為全局安裝目錄下 node_modules 位置。

? ?查看npm配置 `npm config list`


9. ?Node.js了解嗎?

根據(jù)官方文檔可以知道,node就是一個(gè)給予谷歌v8引擎的一個(gè)javascript的運(yùn)行時(shí),可以理解為運(yùn)行js的一個(gè)虛擬機(jī)。他使用的是一個(gè)事件驅(qū)動(dòng),非阻塞I/O模型 ,他是將js的運(yùn)行環(huán)境搬到了服務(wù)器端,和客戶端沒(méi)有一點(diǎn)關(guān)系。是一個(gè)純服務(wù)端的東西,node只是為js提供了一個(gè)平臺(tái)。

? ?  node里面其實(shí)還分了兩塊,一是封裝了v8引擎,目的是為了執(zhí)行es(如定義變量,定義函數(shù)等),另外一個(gè)提供了大量的工具庫(kù),是幫助node實(shí)現(xiàn)各種功能的,提供了一些以前js的環(huán)境辦不到的事情,比如文件操作,網(wǎng)絡(luò)操作,操作系統(tǒng)的操作。

? ? 既然node是一個(gè)平臺(tái)(所謂的平臺(tái)就是用來(lái)運(yùn)行特定語(yǔ)言的),也就意味著node是用來(lái)運(yùn)行語(yǔ)言的,那么java也是語(yǔ)言,node能運(yùn)行java嗎?據(jù)nodejs創(chuàng)始人Ryan Dahl回憶,他最初是選擇了Ruby這門語(yǔ)言,但是Ruby這門語(yǔ)言的虛擬機(jī)效率不怎么樣最終放棄了,按照這種思路,貌似node將java的虛擬機(jī)集成進(jìn)來(lái)應(yīng)該可以運(yùn)行java,但node作者最終選擇了javascript。

? ?  這樣js就實(shí)現(xiàn)了在服務(wù)端運(yùn)行的可能,js運(yùn)行在node平臺(tái)上(分為v8部分,用來(lái)執(zhí)行es,和大量的工具庫(kù)組件(API)稱之為libuv,提供了以前js的環(huán)境辦不到的事,如文件操作,網(wǎng)絡(luò)操作等等)。

? ?用途:

? ? (1)node可以接受客戶端用戶的所有請(qǐng)求,并且能夠快速的給出響應(yīng),因此node可以用來(lái)做網(wǎng)站。

? ?(2)node可以作為一個(gè)中間層來(lái)來(lái)分發(fā)調(diào)用數(shù)據(jù)接口,比如有一個(gè)網(wǎng)站數(shù)據(jù)是有java提供的,我們可以讓node作為一個(gè)中間層,來(lái)接受用戶的請(qǐng)求,然后通過(guò)node來(lái)調(diào)用java數(shù)據(jù)接口,獲取到數(shù)據(jù)后直接在node層面做html的封裝,然后將渲染好的頁(yè)面直接給用戶。為什么要這樣做,直接請(qǐng)求java接口不行嗎,這是因?yàn)閚ode被稱之為高性能的web服務(wù)器,在并發(fā)和抗壓方面都比傳統(tǒng)的平臺(tái)要好很多,因此這樣一包裝可以極大的減輕服務(wù)器的開發(fā)。

? ?  通過(guò)上面的兩點(diǎn),可以總結(jié)出,node在web中要么從前端頁(yè)面到后端服務(wù)全包了,一個(gè)是只做其中的一點(diǎn)。

? ?  一言以蔽之,node就是一個(gè)javascript的運(yùn)行環(huán)境(平臺(tái)),他不是一門語(yǔ)言,也不是javascript的框架??梢杂脕?lái)開發(fā)服務(wù)端應(yīng)用程序,web系統(tǒng)。其特點(diǎn)是體積小,快速,高性能。


??低暶嬖囶}答案整理的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
绍兴市| 成武县| 钟祥市| 柳江县| 贞丰县| 保亭| 新宁县| 定南县| 苏尼特左旗| 临澧县| 安化县| 确山县| 庆安县| 双牌县| 旬阳县| 涿州市| 米易县| 湘潭市| 嘉定区| 阜宁县| 韩城市| 秦安县| 永胜县| 合阳县| 平罗县| 德昌县| 道孚县| 象州县| 紫金县| 南乐县| 武隆县| 高州市| 崇义县| 镶黄旗| 扎鲁特旗| 佛坪县| 横山县| 福贡县| 淮滨县| 冷水江市| 东莞市|