成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

2017年前端面試題整理

Ashin / 3518人閱讀

摘要:函數(shù)內(nèi)置不可變,在函數(shù)體內(nèi)整個(gè)執(zhí)行環(huán)境中為常量。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的對(duì)象的值??刂票韱慰丶慕脿顟B(tài)。生成相對(duì)定位的元素,相對(duì)于其在普通流中的位置進(jìn)行定位。

Javasript

1.請(qǐng)定義一個(gè)方法,傳入一個(gè)string類型的參數(shù),然后將string的每個(gè)字符間加個(gè)空格返回

spacify("hello world") // => "h e l l o  w o r l d"

function spacify(str) {
  return str.split("").join(" ");
}

先使用split把字符串分割成數(shù)組,然后使用join給每個(gè)數(shù)組后面添加一個(gè)空格并且拼接成字符串

2.如何把這個(gè)方法放入 String 對(duì)象上面

"hello world".spacify();

String.prototype.spacify = function(){
  return this.split("").join(" ");
};

3.函數(shù)聲明和函數(shù)表達(dá)式的區(qū)別

 1.函數(shù)聲明創(chuàng)建的函數(shù)可以在定義之前就進(jìn)行調(diào)用,而用函數(shù)表達(dá)式創(chuàng)建的函數(shù)不能在被賦值之前進(jìn)行調(diào)用
 2.出現(xiàn)這個(gè)區(qū)別的原因,現(xiàn)在這兩種類型在Javascript function hoisting(函數(shù)提升)和運(yùn)行時(shí)機(jī)(解析時(shí)/運(yùn)行時(shí))上的差異

4.e.target與e.currentTarget的區(qū)別

e.curretnTarge是指注冊(cè)了事件監(jiān)聽器的對(duì)象,e.target是指對(duì)象里的子對(duì)象,實(shí)際觸發(fā)這個(gè)事件的對(duì)象

5.在另一個(gè)函數(shù)中保持this上下文有幾種方法?

1.可以將this賦值給另外一個(gè)變量上(self、_this、that),改變上下文之后繼續(xù)引用它
2.使用Function.prototype.bind,bind()方法創(chuàng)建一個(gè)新的函數(shù), 當(dāng)被調(diào)用時(shí),將其this關(guān)鍵字設(shè)置為提供的值,在調(diào)用新函數(shù)時(shí),在任何提供之前提供一個(gè)給定的參數(shù)序列。
3.使用箭頭函數(shù)

6.箭頭函數(shù)與傳統(tǒng)的JavaScript函數(shù)主要區(qū)別

1.對(duì) this 的關(guān)聯(lián)。函數(shù)內(nèi)置 this 的值,取決于箭頭函數(shù)在哪兒定義,而非箭頭函數(shù)執(zhí)行的上下文環(huán)境。
2.new 不可用。箭頭函數(shù)不能使用 new 關(guān)鍵字來(lái)實(shí)例化對(duì)象,不然會(huì)報(bào)錯(cuò)。
3.this 不可變。函數(shù)內(nèi)置 this 不可變,在函數(shù)體內(nèi)整個(gè)執(zhí)行環(huán)境中為常量。
4.沒(méi)有arguments對(duì)象。更不能通過(guò)arguments對(duì)象訪問(wèn)傳入?yún)?shù)。

7.截取和清空數(shù)組

var arr = [1, 2, 3, 4];
arr.length = 2;   //截取,arr = [1, 2];  
arr.length = 0;   //清空,arr will be equal to []

8.獲取數(shù)組的最大最小值

var numbers = [1, 3, 5, -10];
var maxInNumbers = Math.max.apply(Math, numbers);   //5
var minInNumbers = Math.min.apply(Math, numbers);   //-10

9.Js中的new()到底做了些什么?

1.創(chuàng)建一個(gè)空對(duì)象。
2.屬性和方法被加入到 this 引用的對(duì)象中。
3.新創(chuàng)建的對(duì)象由 this 所引用,并且最后隱式的返回 this 。

var obj={};
obj.__proto__=fn.prototype;
fn.call(obj);

10.eval是做什么的?

它的功能是把對(duì)應(yīng)的字符串解析成JS代碼并運(yùn)行;
應(yīng)該避免使用eval,不安全,非常耗性能(2次,一次解析成js語(yǔ)句,一次執(zhí)行)。

11.哪些操作會(huì)造成內(nèi)存泄漏?

內(nèi)存泄漏指任何對(duì)象在您不再擁有或需要它之后仍然存在。
垃圾回收器定期掃描對(duì)象,并計(jì)算引用了每個(gè)對(duì)象的其他對(duì)象的數(shù)量。如果一個(gè)對(duì)象的引用數(shù)量為 0(沒(méi)有其他對(duì)象引用過(guò)該對(duì)象),或?qū)υ搶?duì)象的惟一引用是循環(huán)的,那么該對(duì)象的內(nèi)存即可回收。
setTimeout 的第一個(gè)參數(shù)使用字符串而非函數(shù)的話,會(huì)引發(fā)內(nèi)存泄漏。
閉包、控制臺(tái)日志、循環(huán)(在兩個(gè)對(duì)象彼此引用且彼此保留時(shí),就會(huì)產(chǎn)生一個(gè)循環(huán))

12.call() 和 apply() 的區(qū)別和作用?

區(qū)別:apply()與call()作用沒(méi)有區(qū)別,用法與call()方法稍有區(qū)別,就是call()的第二個(gè)參數(shù)(調(diào)用函數(shù)使用的參數(shù)),是一個(gè)一個(gè)傳入的;而apply()的第二個(gè)參數(shù)的值是使用數(shù)組的形式傳入的
作用:在Javascript中,每個(gè)函數(shù)都包含兩個(gè)非繼承而來(lái)的方法,call和apply。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的this對(duì)象的值。

apply方法接收兩個(gè)參數(shù),第一個(gè)參數(shù)是在其中運(yùn)行函數(shù)的作用域,第二個(gè)是一個(gè)參數(shù)數(shù)組或者arguments對(duì)象。
call方法與apply方法作用相同,第一個(gè)參數(shù)也相同,區(qū)別在于,其余的參數(shù)需要逐個(gè)列出。

apply(thisArg, argArray);
call(thisArg[,arg1,arg2…]);

是使用call還是apply要看具體的情況。如果你知道所有參數(shù)或者參數(shù)的數(shù)量不多,可以使用call;
如果參數(shù)的數(shù)量不確定,或者數(shù)量很大,或者你收到的是一個(gè)數(shù)組或者是個(gè)arguments對(duì)象,則需要使用apply。

13.什么是閉包,閉包的特性,閉包的優(yōu)點(diǎn)與缺點(diǎn)?

閉包 是指有權(quán)訪問(wèn)另一個(gè)函數(shù)作用域中的變量的函數(shù),創(chuàng)建閉包的最常見的方式就是在一個(gè)函數(shù)內(nèi)創(chuàng)建另一個(gè)函數(shù),通過(guò)另一個(gè)函數(shù)訪問(wèn)這個(gè)函數(shù)的局部變量

1.函數(shù)嵌套函數(shù)
2.函數(shù)內(nèi)部可以引用外部的參數(shù)和變量
3.參數(shù)和變量不會(huì)被垃圾回收機(jī)制回收

優(yōu)點(diǎn)是可以避免全局變量的污染,變量和方法私有化,不讓外部修改這些屬性
缺點(diǎn)是閉包會(huì)常駐內(nèi)存,會(huì)增大內(nèi)存使用量,使用不當(dāng)很容易造成內(nèi)存泄露

Css

1.清除浮動(dòng)有幾種方式,浮動(dòng)引起的問(wèn)題

1.在所有浮動(dòng)標(biāo)簽后面添加一個(gè)空標(biāo)簽,css clear:both 弊端添加了無(wú)意義的標(biāo)簽
2.使用overflow給包含浮動(dòng)元素的父標(biāo)簽添加css屬性 overflow:auto; zoom:1; zoom:1用于兼容IE6
3.使用css偽類before,該方法只適用于非IE瀏覽器。具體寫法可參照以下示例。使用中需注意以下幾點(diǎn)。一、該方法中必須為需要清除浮動(dòng)元素的偽對(duì)象中設(shè)置 height:0,否則該元素會(huì)比實(shí)際高出若干像素;
after{
  content:".";
  height:0;
  visibility:hidden;
  display:block;
  clear:both;
}

浮動(dòng)元素引起的問(wèn)題:
1.父元素的高度無(wú)法被撐開,影響與父元素同級(jí)的元素
2.與浮動(dòng)元素同級(jí)的非浮動(dòng)元素(內(nèi)聯(lián)元素)會(huì)跟隨其后
3.若非第一個(gè)元素浮動(dòng),則該元素之前的元素也需要浮動(dòng),否則會(huì)影響頁(yè)面顯示的結(jié)構(gòu)

2.IE 8以下版本的瀏覽器中的盒模型有什么不同

IE8以下瀏覽器的盒模型中定義的元素的寬高不包括padding和border

3.CSS 選擇符有哪些?哪些屬性可以繼承??jī)?yōu)先級(jí)算法如何計(jì)算?

1.id選擇器( # myid)
2.類選擇器(.myclassname)
3.標(biāo)簽選擇器(div, h1, p)
4.相鄰選擇器(h1 + p)
5.子選擇器(ul > li)
6.后代選擇器(li a)
7.通配符選擇器( * )
8.屬性選擇器(a[rel = "external"])
9.偽類選擇器(a: hover, li:nth-child)

可繼承的樣式: font-size font-family color, text-indent;
不可繼承的樣式:border padding margin width height ;

!important >  id > class > tag  

4.CSS3新增偽類有那些?

p:first-of-type 選擇屬于其父元素的首個(gè) 

元素的每個(gè)

元素。 p:last-of-type 選擇屬于其父元素的最后

元素的每個(gè)

元素。 p:only-of-type 選擇屬于其父元素唯一的

元素的每個(gè)

元素。 p:only-child 選擇屬于其父元素的唯一子元素的每個(gè)

元素。 p:nth-child(2) 選擇屬于其父元素的第二個(gè)子元素的每個(gè)

元素。 :enabled :disabled 控制表單控件的禁用狀態(tài)。 :checked 單選框或復(fù)選框被選中。

5.position的值, relative和absolute分別是相對(duì)于誰(shuí)進(jìn)行定位的?

absolute 
    生成絕對(duì)定位的元素, 相對(duì)于最近一級(jí)的 定位不是 static 的父元素來(lái)進(jìn)行定位。

fixed (老IE不支持)
    生成絕對(duì)定位的元素,相對(duì)于瀏覽器窗口進(jìn)行定位。 

relative 
    生成相對(duì)定位的元素,相對(duì)于其在普通流中的位置進(jìn)行定位。 

static  默認(rèn)值。沒(méi)有定位,元素出現(xiàn)在正常的流中

6.CSS中 link 和@import 的區(qū)別是?

1.link屬于HTML標(biāo)簽,而@import是CSS提供的; 
2.頁(yè)面被加載的時(shí),link會(huì)同時(shí)被加載,而@import引用的CSS會(huì)等到頁(yè)面被加載完再加載;
3.import只在IE5以上才能識(shí)別,而link是HTML標(biāo)簽,無(wú)兼容問(wèn)題; 
4.link方式的樣式的權(quán)重 高于@import的權(quán)重.

7.href與src的區(qū)別

1.src 是指向物件的來(lái)源地址,是引入。在 img、script、iframe 等元素上使用。
2.href 是超文本引用,指向需要連結(jié)的地方,是與該頁(yè)面有關(guān)聯(lián)的,是引用。在 link和a 等元素上使用。
3.使用區(qū)別:src通常用作“拿取”(引入),href 用作 "連結(jié)前往"(引用)。

8.什么是盒子模型

一個(gè)是由content、padding、border、margin組成的元素就是盒子模型,用來(lái)設(shè)置元素在網(wǎng)頁(yè)中的大小和位置。

9.transform屬性里面有幾種動(dòng)畫效果?(3種即可)

rotate(旋轉(zhuǎn))  scale(縮放)   translate(位移)

最近面試蛋疼很多都忘的差不多了,先溫習(xí)到這,希望對(duì)大家有幫助。

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

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

相關(guān)文章

  • 2017年前端面試題整理

    摘要:函數(shù)內(nèi)置不可變,在函數(shù)體內(nèi)整個(gè)執(zhí)行環(huán)境中為常量。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的對(duì)象的值??刂票韱慰丶慕脿顟B(tài)。生成相對(duì)定位的元素,相對(duì)于其在普通流中的位置進(jìn)行定位。 Javasript 1.請(qǐng)定義一個(gè)方法,傳入一個(gè)string類型的參數(shù),然后將string的每個(gè)字符間加個(gè)空格返回 spacify(hello world) // => h e l...

    Muninn 評(píng)論0 收藏0
  • 2017年前端面試題整理

    摘要:函數(shù)內(nèi)置不可變,在函數(shù)體內(nèi)整個(gè)執(zhí)行環(huán)境中為常量。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的對(duì)象的值??刂票韱慰丶慕脿顟B(tài)。生成相對(duì)定位的元素,相對(duì)于其在普通流中的位置進(jìn)行定位。 Javasript 1.請(qǐng)定義一個(gè)方法,傳入一個(gè)string類型的參數(shù),然后將string的每個(gè)字符間加個(gè)空格返回 spacify(hello world) // => h e l...

    Caicloud 評(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)典面試題前端開發(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)典面試題前端開發(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
  • 2018年前端面試題(秋季面試隨意整理的)

    摘要:也就是說(shuō)定義的引用類型只要指針不發(fā)生改變,其他的不論如何改變都是允許的。把數(shù)組中的所有元素放入一個(gè)字符串。這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的對(duì)象的值。是使用還是要看具體的情況。 1.html和css 引入 css 有哪幾種方式 1.使用標(biāo)簽,引入外部CSS文件(1.通過(guò)@import,引入CSS文件(性能較差) 2.將css的樣式代碼放在html文檔...

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

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

0條評(píng)論

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