亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

常見(jiàn)js筆試面試題(持續(xù)更新)

yuxue / 1782人閱讀

摘要:相當(dāng)于繞過(guò)了瀏覽器端,自然就不存在跨域問(wèn)題。三者的區(qū)別與服務(wù)器的交互數(shù)據(jù)始終在同源的請(qǐng)求中攜帶即使不需要,即在瀏覽器和服務(wù)器間來(lái)回傳遞。而和不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。和雖然也有存儲(chǔ)大小的限制,但比大得多,可以達(dá)到或更大。

本文提供最簡(jiǎn)便的解答方式,方便快速記憶,復(fù)盤,詳細(xì)答案可自己再搜一下。
js基礎(chǔ)知識(shí) 1. javascript typeof返會(huì)的數(shù)據(jù)類型有哪些

object,string,undefined,number,function,boolean

基本數(shù)據(jù)類型:
string,number,boolean,undefined,null
2. 列舉三種強(qiáng)制類型轉(zhuǎn)換和兩種隱式類型轉(zhuǎn)換

parseInt(),parseFloat(),Number()
==,!!

3. 數(shù)組相關(guān)集合 3.1. 創(chuàng)建數(shù)組方法
var array = new Array()
var array = []

Array.of(1,2) //[1,2]
這是es6新增的一個(gè)Array方法,創(chuàng)建一個(gè)具有可變數(shù)量參數(shù)的新數(shù)組實(shí)例,而不考慮參數(shù)的數(shù)量或類型。
(感謝 haru 的寶貴建議)

4. 判斷是否為數(shù)組的方法

console.log(arr instanceof Array)

console.log(arr.construct === Array)

console.log(Array.isArray(arr))

5. pop(),push(),unshift(),shift()

pop()尾部刪除

push()尾部插入

unshift()頭部插入

shift()頭部刪除

6. DOM0 DOM2

dom0級(jí)

不支持添加多個(gè)事件,后面的會(huì)覆蓋前面的

無(wú)法取消

var btn = document.getElementById("button");
btn.onclick = function(){
    alert(1);
}
btn.onclick = function(){
    alert(2);
}       //只彈出2

dom2

可以添加多個(gè)事件

不兼容低版本IE

支持事件冒泡,事件捕獲

var btn = document.getElementById("button");
btn.addEventListener("click",function(){
    alert("1");
})
btn.addEventListener("click",function(){
    alert("2");
})              //先彈出1,再?gòu)棾?
7. IE和DOM事件流的區(qū)別

執(zhí)行順序不一樣

參數(shù)不一樣 低版本ie沒(méi)有回調(diào)函數(shù),只能進(jìn)行冒泡

第一個(gè)參數(shù)是否加"on",低版本IE不支持addEventListener(),支持attachEvent,第一個(gè)參數(shù)需要加"on"

this指向問(wèn)題,IE指向windows,不指向觸發(fā)的函數(shù)

8. IE標(biāo)準(zhǔn)下有哪些兼容性寫法
var ev = ev||window.event

document.documentElement.clientWidth||document.body.clientWidth

var target = ev.srcElement||ev.target
9. call apply bind

改變this的指向,
其中call的寫法

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
  
add.call(sub,3,1);   

這個(gè)例子中的意思就是用 add 來(lái)替換 sub,add.call(sub,3,1) == add(3,1) ,所以運(yùn)行結(jié)果為:alert(4); // 注意:js 中的函數(shù)其實(shí)是對(duì)象,函數(shù)名是對(duì) Function 對(duì)象的引用。
apply寫法

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
add.apply(sub,[4,2]); 

不同就在于第二個(gè)參數(shù),apply寫成數(shù)組

bind寫法

function add(a,b)  
{  
    alert(a+b);  
}  
function sub(a,b)  
{  
    alert(a-b);  
}  
add.bind(sub,4,2)(); 

bind是返回了一個(gè)改變上下文的一個(gè)函數(shù),可以稍后調(diào)用,而apply,call是立即執(zhí)行函數(shù)

10. b繼承a的方法(js面向?qū)ο髲?fù)習(xí))

原型鏈繼承

構(gòu)造函數(shù)繼承

實(shí)例繼承

組合繼承

拷貝繼承

寄生組合繼承

11. 如何阻止事件冒泡和默認(rèn)事件

cancelBubble(IE),

return false,

event.preventDefault,

event.stopPropagation()

12. 添加 刪除 替換 插入到某個(gè)DOM節(jié)點(diǎn)的方法

obj.appendChild()

obj.insertBefore()

obj.replace()

obj.remove()

13. window.onload和$(document).ready的區(qū)別

window.onload只能出現(xiàn)一次,$(document).ready能出現(xiàn)多次

window.onload需要等所有文件都加載完才開(kāi)始加載,$(document).ready只需等文檔結(jié)構(gòu)加載完了就開(kāi)始加載

14. == 和 === 區(qū)別

前者會(huì)自動(dòng)轉(zhuǎn)換類型
后者不會(huì)

15. javascript的同源策略(跨域問(wèn)題)

跨域是什么:實(shí)際上就是一個(gè)網(wǎng)站不能執(zhí)行其他網(wǎng)站上的網(wǎng)址,是由瀏覽器同源策略造成的,是瀏覽器對(duì)js施加的安全限制
所謂同源,實(shí)際上是指域名,協(xié)議,端口都相同
也就是說(shuō)當(dāng),域名或者協(xié)議,或者端口不同的時(shí)候,就是跨域,

15.1. 解決方法:
jsonp

json with padding,是一種json的一種使用模式
產(chǎn)生的原因,ajax不支持跨域,由于瀏覽器的同源策略,但是script的src支持跨域
主要的原理是動(dòng)態(tài)創(chuàng)建一個(gè)script標(biāo)簽的,通過(guò)src調(diào)用服務(wù)器提供的js腳本,該腳本的內(nèi)容是一個(gè)函數(shù)調(diào)用,該函數(shù)在本地js文件中進(jìn)行定義,其中的參數(shù)就是,本地函數(shù)請(qǐng)求的數(shù)據(jù),也就是服務(wù)器所將返回的數(shù)據(jù)

與ajax的不同,ajax是通過(guò)xhr獲取非本頁(yè)面的數(shù)據(jù)內(nèi)容,而jsonp獲取的是服務(wù)器提供js腳本

代理

例如www.123.com/index.html需要調(diào)用

www.456.com/server.php,可以寫一個(gè)接口

www.123.com/server.php,由這個(gè)接口在后端去調(diào)用

www.456.com/server.php并拿到返回值,然后再返回給 index.html,這就是一個(gè)代理的模式。相當(dāng)于繞過(guò)了瀏覽器端,自然就不存在跨域問(wèn)題。

PHP端修改header(XHR2方式)
在php接口腳本中加入以下兩句即可:
header("Access-Control-Allow-Origin:*");//允許所有來(lái)源訪問(wèn)
header("Access-Control-Allow-Method:POST,GET");//允許訪問(wèn)的方式
16. javascript是一種什么樣的語(yǔ)言

解釋性腳本語(yǔ)言,代碼不進(jìn)行預(yù)編譯

主要用來(lái)向HTML頁(yè)面添加交互行為

可以直接嵌入HTML頁(yè)面,但多帶帶寫成js文件有利于結(jié)構(gòu)和行為的分離

跨平臺(tái)性,在絕大多數(shù)瀏覽器支持下,可以在多種平臺(tái)下運(yùn)行,linux,windows

17. javascript基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
基本類型 undefind null number string boolean

基本類型的值是不能改變的

基本類型不能添加屬性和方法

基本類型的比較是值的比較

基本類型變量存放在棧區(qū)(棧內(nèi)存)

也就是說(shuō)基本類型在賦值操作后,兩個(gè)變量是相互不受影響的。

引用類型 object Function Array

引用類型可以添加屬性和方法,屬性方法內(nèi)又可以添加基本類型

引用類型的值是可變的

引用類型的值時(shí)同時(shí)保存在棧內(nèi)存和堆內(nèi)存里的對(duì)象,準(zhǔn)確地說(shuō),引用類型的存儲(chǔ)需要內(nèi)存的棧區(qū)和堆區(qū)(堆區(qū)是指內(nèi)存里的堆內(nèi)存)共同完成,棧區(qū)內(nèi)存保存變量標(biāo)識(shí)符和指向堆內(nèi)存中該對(duì)象的指針,

引用類型的比較是引用的比較 引用類型時(shí)按引用訪問(wèn)的,換句話說(shuō)就是比較兩個(gè)對(duì)象的堆內(nèi)存中的地址是否相同,那很明顯,person1和person2在堆內(nèi)存中地址是不同的

引用類型的賦值其實(shí)是對(duì)象保存在棧區(qū)地址指針的賦值,因此兩個(gè)變量指向同一個(gè)對(duì)象,任何的操作都會(huì)相互影響

18. js原生不要與jq搞混

document.getELementById("ID").value

獲取值的時(shí)候原生不是方法,不帶括號(hào)

獲取所有checkbox

var boxs =document.getELementsByTagName("input");
var boxArray = [];
var len = boxs.length;
while(len--){
    if(boxs[len].type == "checkbox"){
        boxArray.push(boxs[len]);
    }
}

設(shè)置div html內(nèi)容以及設(shè)置樣式

var dom = document.getElementById("ID");
dom.innerHTML = "xxxx"
dom.style.color="#000"
19. DOM,BOM

javascript由ECMAScript,DOM,BOM三部分組成,

ECMAScript也是一種語(yǔ)言,也就是對(duì)規(guī)定的語(yǔ)法,操作,關(guān)鍵字,語(yǔ)句等的一個(gè)描述,javascript實(shí)現(xiàn)了ECMAScript

DOM是文檔對(duì)象模型,包括了獲取元素,修改樣式,操作元素三方面內(nèi)容,也是我們進(jìn)行最多的操作,有很多兼容性寫法

BOM是瀏覽器對(duì)象模型,包括瀏覽器的一些操作,window.onload,window.open等還有瀏覽器事件,監(jiān)聽(tīng)窗口的改變onresize,監(jiān)聽(tīng)滾動(dòng)事件onscroll等

20. null和undefind的區(qū)別

null是表示一個(gè)空的對(duì)象,轉(zhuǎn)為數(shù)值為0,undefind表示一個(gè)空的原始值,轉(zhuǎn)為數(shù)值為NAN

undefind指本該有一個(gè)值,但卻并有定義,null表示沒(méi)有對(duì)象,不應(yīng)該有值

21. XML和JSON的區(qū)別

JSON相對(duì)于XML來(lái)講傳遞速度更快,因?yàn)楣饪创a量就能看出

JSON與js的交互更容易,解析更方便

22. 實(shí)現(xiàn)多個(gè)標(biāo)簽之間的通信

調(diào)用localStorage,cookies等本地存儲(chǔ)進(jìn)行存儲(chǔ)相關(guān)信息
三者的共同點(diǎn):都保存在瀏覽器。
三者的區(qū)別:

與服務(wù)器的交互

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

而sessionStorage和localStorage不會(huì)自動(dòng)把數(shù)據(jù)發(fā)給服務(wù)器,僅在本地保存。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也是在所有同源窗口中都是共享的。

23. 哪些操作會(huì)造成內(nèi)存泄露
內(nèi)存泄露指任何對(duì)象在不再擁有或不再需要它之后依然存在

setTimeout第一個(gè)參數(shù)是字符串而不是函數(shù)的時(shí)候就會(huì)造成內(nèi)存泄露

閉包

控制臺(tái)日志

循環(huán)(兩個(gè)對(duì)象彼此引用且彼此保留)

24. js垃圾回收方式

標(biāo)記清除:這是js最常用的垃圾回收方法,當(dāng)一個(gè)變量進(jìn)入執(zhí)行環(huán)境時(shí),例如函數(shù)中聲明一個(gè)變量,將其標(biāo)記為進(jìn)入環(huán)境,當(dāng)變量離開(kāi)環(huán)境時(shí),(函數(shù)執(zhí)行結(jié)束),標(biāo)記為離開(kāi)環(huán)境

引用計(jì)數(shù): 跟蹤記錄每個(gè)值被引用的次數(shù),聲明一個(gè)變量,并將引用 類型賦值給這個(gè)變量,則這個(gè)值的引用次數(shù)+1,當(dāng)變量的值變成了另一個(gè),則這個(gè)值的引用次數(shù)-1,當(dāng)值的引用次數(shù)為0的時(shí)候,就回收

25. 閉包

函數(shù)嵌套函數(shù)

子級(jí)函數(shù)調(diào)用父級(jí)函數(shù)的參數(shù)或變量

經(jīng)典閉包

function outer(){
    var a = 1;
    function inner(){
        alert(a);
    }
    return inner
}
var inn = outer();
inn();

點(diǎn)擊li返回li下標(biāo)

  • 1
  • 2
  • 3
26. this指向問(wèn)題
普通函數(shù)調(diào)用,指向windows
window.value=1;
function getValue(){
 console.log(this.value);
}
getValue();//輸出1,此時(shí)的this指向window
對(duì)象的方法調(diào)用,指向?qū)ο?/pre>
var Obj={
  value:2,
  getValue:function(){
       console.log(this.value);//輸出2,this指向Obj
  }   
}
構(gòu)造器方法調(diào)用,指向構(gòu)造函數(shù)實(shí)例出來(lái)的對(duì)象
function main(val){
  this.value=val;
}
main.prototype.getValue=function(){
  console.log(this.value);
}

var fun=new main(3);
fun.getValue();
fun.value;//輸出3,this指向main的實(shí)例對(duì)象fun
call,apply,bind可以自定義this指向第一個(gè)參數(shù)
function showValue(){
  console.log(this.value);
}
var obj={
  value:4
}
showValue.call(obj)//輸出4,this指向了obj對(duì)象
function showValue(){
  console.log(this.value);
}
var obj={
  value:4
}
var showValue2=showValue.bind(obj);
showValue2()//輸出4,this指向了obj對(duì)象
27. 高階函數(shù)

函數(shù)作為參數(shù)傳遞,

函數(shù)作為返回值輸出

28. new操作符到底干了什么

創(chuàng)建一個(gè)新對(duì)象

將構(gòu)造函數(shù)的作用域賦值給新對(duì)象(所以this指向了這個(gè)新對(duì)象)

執(zhí)行構(gòu)造函數(shù)的代碼(為這個(gè)新對(duì)象添加屬性)

返會(huì)新對(duì)象

29. js嚴(yán)格模式

"use strict"
消除js一些不合理的用法
消除代碼運(yùn)行的一些不安全之處
增加運(yùn)行速度
為未來(lái)新版本js做鋪墊

變量必須聲明

對(duì)象不能出現(xiàn)重復(fù)屬性名

arguments改變,不會(huì)影響函數(shù)參數(shù)

eval,arguments變?yōu)殛P(guān)鍵字,不能作為變量名

不允許使用with

不用call,apply,bind改變this指向,一般函數(shù)調(diào)用指向null

30. 事件代理事件委托

原理是使用dom的冒泡,將事件綁定到父元素上,讓父元素進(jìn)行監(jiān)聽(tīng),提高性能

31.什么是版本控制,

版本控制是一種記錄一個(gè)或若干文件內(nèi)容變化,以便將來(lái)查閱修改以及更新。

32.ajax請(qǐng)求

ajax請(qǐng)求四步

創(chuàng)建一個(gè)xhr對(duì)象 var xhr = new XmlHttpRequest()

判斷就緒狀態(tài)為4時(shí)執(zhí)行代碼

xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
        console.log(responseText);
    }
}

創(chuàng)建請(qǐng)求 xhr.open("get","url",true)

發(fā)送請(qǐng)求 xhr.send(null)

33.在瀏覽器中輸入U(xiǎn)RL到整個(gè)頁(yè)面顯示在用戶面前時(shí)這個(gè)過(guò)程中到底發(fā)生了什么

DNS解析

TCP連接

發(fā)送HTTP請(qǐng)求

服務(wù)器處理請(qǐng)求并返回HTTP報(bào)文

瀏覽器解析渲染頁(yè)面

連接結(jié)束

詳細(xì):

首先根據(jù)url中的域名,在遠(yuǎn)程服務(wù)器中查詢對(duì)應(yīng)

34.ajax和json
ajax用于web頁(yè)面中實(shí)現(xiàn)異步數(shù)據(jù)交互,實(shí)現(xiàn)頁(yè)面局部?jī)?nèi)容刷新

優(yōu)點(diǎn):能夠進(jìn)行內(nèi)容局部加載刷新,減少帶寬,避免用戶不斷刷新以及頁(yè)面跳轉(zhuǎn),提高用戶體驗(yàn)

缺點(diǎn):對(duì)搜索引擎不友好;瀏覽器不支持ajax的后退;

json是一種請(qǐng)求輕量級(jí)的數(shù)據(jù)交互格式

優(yōu)點(diǎn):輕量級(jí),便于人的閱讀理解,便于機(jī)器解析

35.http考點(diǎn) 常用的HTTP方法有哪些

GET:
POST:
PUT:
DELETE:

GET與POST方法的區(qū)別

get主要是從服務(wù)器獲取資源,post主要是像服務(wù)器發(fā)送數(shù)據(jù)

get傳輸數(shù)據(jù)通過(guò)url請(qǐng)求,利用k=v的形式放在url后面,用?連接,多個(gè)用&連接而post是存放在,ajax中的data中的,get傳輸?shù)倪^(guò)程使用戶可見(jiàn) 的,而post是對(duì)用戶不可見(jiàn)的。

get傳輸?shù)臄?shù)據(jù)量小,因?yàn)槭躸rl的長(zhǎng)度限制,但是效率高,post能上傳的數(shù)據(jù)量大

post較get更安全一些

get方式傳遞的中文字符可能會(huì)亂碼,post支持標(biāo)準(zhǔn)字符集,可以正確傳遞中文字符

http請(qǐng)求報(bào)文與響應(yīng)報(bào)文格式

請(qǐng)求報(bào)文包含三部分:

請(qǐng)求行:包含請(qǐng)求方法、URI、http版本信息

請(qǐng)求首部字段

請(qǐng)求內(nèi)容實(shí)體

響應(yīng)報(bào)文包含三部分:

狀態(tài)行:包含HTTP版本、狀態(tài)碼、狀態(tài)碼的原因短語(yǔ)

響應(yīng)首部字段

響應(yīng)內(nèi)容實(shí)體

http狀態(tài)碼

100-199:成功接收請(qǐng)求,但需要進(jìn)行下一步請(qǐng)求

200-299:成功接收請(qǐng)求,并完成整個(gè)處理過(guò)程

300-399:為完成全部請(qǐng)求,客戶需近一步細(xì)化需求

400-499:客戶端請(qǐng)求有錯(cuò)誤,包括語(yǔ)法錯(cuò)誤或不能正常執(zhí)行

500-599:服務(wù)器端出現(xiàn)錯(cuò)誤

http缺點(diǎn)與https

通信使用明文不加密,內(nèi)容可能被竊聽(tīng)

不驗(yàn)證通信方身份,可能遭到偽裝

無(wú)法驗(yàn)證報(bào)文完整性,可能被篡改

https就是加上加密處理(一般是SSL安全通信線路)+認(rèn)證+完整性保護(hù)

常用:

200 正常,表示一切正常,返會(huì)的是正常請(qǐng)求結(jié)果

302/307 臨時(shí)重定向,表示請(qǐng)求的文檔,已被臨時(shí)移動(dòng)到別處

304 未修改,調(diào)用緩存的數(shù)據(jù)

403 服務(wù)器拒絕客戶請(qǐng)求

404 服務(wù)器不存在客戶想要找的資源

500 服務(wù)器內(nèi)部錯(cuò)誤

36.數(shù)組去重的一種相對(duì)好理解的方法

利用indexOf方法的去重

indexOf() 方法可返回某個(gè)指定的字符串值在字符串中首次出現(xiàn)的位置。

var arr = [1,1,2,3,4,2,6,4,5,7];
var nArr = [];
function removeItem(arr){
    for(var i=0;i
es6
let const

let相當(dāng)于給js新增了塊級(jí)作用域,聲明的變量只在let命令所在的代碼塊內(nèi)有效

const也是聲明變量,它聲明的變量,不能改變,可以用來(lái)聲明第三方庫(kù)變量的應(yīng)用

class extends super

class定義一個(gè)類,其中有一個(gè)construct方法,construct方法中的this代表實(shí)例對(duì)象,construct以外還有其他的方法,construct內(nèi)定義的方法屬性是實(shí)例對(duì)象自己的,construct外的方法屬性是所有實(shí)例對(duì)象共享的

class之間可以通過(guò)extends實(shí)現(xiàn)繼承

super指代父類的實(shí)例,子類construct中必須先調(diào)用super()方法,因?yàn)樽宇悰](méi)有自己的this對(duì)象,是繼承父類的this對(duì)象

arrow function(箭頭函數(shù))

除了書(shū)寫簡(jiǎn)潔了很多,最大的優(yōu)點(diǎn)是this指向,使用箭頭函數(shù),函數(shù)內(nèi)部的this就是定義時(shí)所在的對(duì)象。箭頭函數(shù)根本沒(méi)有自己的this,this是繼承外面的,它內(nèi)部的this就是外層代碼塊的this

template string(模板字符串)

ajax調(diào)用數(shù)據(jù)庫(kù),需要向文檔中插入大段html的時(shí)候,傳統(tǒng)的字符串拼接太麻煩,引入模板工具庫(kù)會(huì)稍微好點(diǎn),不過(guò)還是沒(méi)有es6的template string簡(jiǎn)單,可以直接用反單引號(hào)包括代碼塊``,用${}來(lái)引用變量,所有的空格縮進(jìn)都會(huì)保留到輸出中

destructuring(解構(gòu)賦值)

es6按照一定模式,從數(shù)組和對(duì)象中提取值,對(duì)變量進(jìn)行賦值,這就成為解構(gòu),也就是說(shuō),運(yùn)用es5的方法,數(shù)組和對(duì)象中的變量需要,一個(gè)個(gè)進(jìn)行賦值,而es6可以一步到位

default,rest(默認(rèn)值,擴(kuò)展語(yǔ)法)

當(dāng)函數(shù)忘記傳參的時(shí)候,給它一個(gè)默認(rèn)值,傳統(tǒng)方法是在函數(shù)中運(yùn)用||,es6可以直接在參數(shù)中寫上

function animal(type){
    type = type || "cat"  
    console.log(type)
}
animal()
function animal(type = "cat"){
    console.log(type)
}
animal()
function animals(...types){
    console.log(types)
}
animals("cat", "dog", "fish") //["cat", "dog", "fish"]
gulp

gulp是一種自動(dòng)化構(gòu)建工具,前端工程化開(kāi)發(fā)的一種工具,增強(qiáng)開(kāi)發(fā)流程
使用方便,npm安裝,新建gulpfile.js,導(dǎo)入gulp模塊,let gulp = require("gulp")
通過(guò)default任務(wù)去定義工作流
最后在終端執(zhí)行g(shù)ulp來(lái)進(jìn)行自動(dòng)化操作

api很簡(jiǎn)單只有四種

gulp.task 創(chuàng)建任務(wù) :參數(shù)任務(wù)名稱,前置任務(wù)數(shù)組,回調(diào)函數(shù)

gulp.src 尋找文件:通過(guò)路徑找到一個(gè)或多個(gè)文件

gulp.dest 輸出到指定目錄:如果沒(méi)有就新建一個(gè)

gulp.watch 監(jiān)聽(tīng)文件變化,執(zhí)行任務(wù)

pipe具體不清楚,總之,除了gulp.src之外,其他執(zhí)行條件都要放在.pipe()中

Bootstrap Bootstrap和Foundation的比較
UI元素的不同

Bootstrap給出了能想到的一切元素,也就是試圖提供所有定義好的UI,比如一個(gè)導(dǎo)航,給予一個(gè)默認(rèn)導(dǎo)航的樣式

Foundation只給定了限定的幾種元素,可以自己自定義,更適合創(chuàng)造

尺寸單位不一樣,

Bootstrap是px

Foundation是rem

網(wǎng)格布局有所不同

Foundation 的網(wǎng)格可以自動(dòng)適配當(dāng)前瀏覽器的寬度,F(xiàn)oundation 則會(huì)靈活適配當(dāng)前的瀏覽器寬度, 這是一種新的技術(shù)手段, 自動(dòng)適配的同時(shí), 可以表現(xiàn)的與 Transformer 一樣的效果.

Boostrap 則是預(yù)定義了幾種網(wǎng)格尺寸來(lái)適配主流的設(shè)備和屏幕.Bootstrap 會(huì)在你改變?yōu)g覽器寬度的時(shí)候突然改變它的網(wǎng)格.

移動(dòng)設(shè)備

Foundation移動(dòng)設(shè)備優(yōu)先

Bootstrap也支持移動(dòng)設(shè)備

社區(qū)

Bootstrap有一個(gè)完備的社區(qū),有什么問(wèn)題幾乎都可以迅速解決

Foundation則沒(méi)有,需要自力更生

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/89550.html

相關(guān)文章

  • 2018年, 我的前端面試復(fù)盤

    摘要:技術(shù)一面一面主要考察基礎(chǔ),有些會(huì)有技術(shù)筆試,比如騰訊,。騰訊的面試官就很喜歡問(wèn),安全,瀏覽器緩存方面的問(wèn)題,計(jì)算機(jī)基礎(chǔ),但是要懂為什么。 這篇文章簡(jiǎn)單總結(jié)下2018年內(nèi)我的一些前端面試經(jīng)歷, 在這簡(jiǎn)單分享一下,希望對(duì)大家有所啟發(fā)。 樓主在深圳,畢業(yè)兩年。面的主要是深圳的幾家公司。 包括: 騰訊, 螞蟻金服, Lazada, Shopee, 有贊 等 。 樓主在準(zhǔn)備面試前, 想著復(fù)習(xí)一...

    Yujiaao 評(píng)論0 收藏0
  • 你不能錯(cuò)過(guò)的前端面試合集

    摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開(kāi)發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過(guò)餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...

    ninefive 評(píng)論0 收藏0
  • 你不能錯(cuò)過(guò)的前端面試合集

    摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開(kāi)發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過(guò)餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過(guò)面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...

    darkbaby123 評(píng)論0 收藏0
  • 記錄一下自己的春招,唯品會(huì)、360、京東offer已收、騰訊offer_call已達(dá)?。?!

    摘要:春招結(jié)果五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品會(huì)電商前端研發(fā)部大數(shù)據(jù)與威脅分析事業(yè)部京東精銳暑假實(shí)習(xí)生的騰訊的是早上打過(guò)來(lái)的。 春招結(jié)果 五月份了,春招已經(jīng)接近尾聲,因?yàn)榈搅酥芪逋砩蟿偤糜锌?,所以?jiǎn)單地記錄一下自己的春招過(guò)程。我的春招從二月初一直持續(xù)到四月底,截止今天,已經(jīng)斬獲唯品...

    freewolf 評(píng)論0 收藏1
  • 講講Python中的函數(shù)傳遞問(wèn) 【文末送書(shū)】

    摘要:文末評(píng)論送書(shū),學(xué)委會(huì)用這個(gè)抽獎(jiǎng)程序來(lái)進(jìn)行嚴(yán)格抽獎(jiǎng),周六晚上點(diǎn)整定時(shí)抽獎(jiǎng)并視頻公布出來(lái),敬請(qǐng)期待。本文講的函數(shù)值傳遞問(wèn)題,是寫程序經(jīng)常遇到,特別的是動(dòng)態(tài)參數(shù)在高級(jí)框架中使用很廣泛。 ...

    luckyw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<