摘要:類型請(qǐng)求成功后的回調(diào)函數(shù)。參數(shù)由服務(wù)器返回,并根據(jù)參數(shù)進(jìn)行處理后的數(shù)據(jù)描述狀態(tài)的字符串。默認(rèn)設(shè)置下,所有請(qǐng)求均為異步請(qǐng)求。類型發(fā)送請(qǐng)求前可修改對(duì)象的函數(shù),如添加自定義頭。對(duì)象是唯一的參數(shù)。如果返回可以取消本次請(qǐng)求。設(shè)置為將不緩存此頁面。
題目一 : 統(tǒng)計(jì)字符串中出現(xiàn)次數(shù)最多的字符
eg : var s = "abcdefghijklabcdaaaefadca" ; // 其中a出現(xiàn)次數(shù)最多,7次
拿到這個(gè)題目,會(huì)怎么做呢?
首先我想到兩種思路:
暴力查找,一個(gè)一個(gè)元素拿出來,再循環(huán),得到次數(shù)放入json鍵值對(duì)中,再比較大小
找到一個(gè)刪除一個(gè),利用正則表達(dá)式替換,長度之差便是其重復(fù)的次數(shù)
暴力查找:
var s = "abcdefghijklabcdaaaefadca"; var json = {}; var Max = { key:"", value:0 }; var arr = s.split(""); for(var i=0;iMax.value){ Max.key = prop; Max.value = json[prop] } } console.log(Max); //得出正確結(jié)果
正則法:
var s = "abcdefghijklabcdaaaefadca"; //用于存放各字母出現(xiàn)的次數(shù) var json = {}; //用于存放出現(xiàn)次數(shù)為最大值的字母 var Max = { key:"", value:0 }; //正則替換,長度之差就是出現(xiàn)的次數(shù) while(s){ var len1 , len2; len1 = s.length; var first = s.charAt(0); s = s.replace(new RegExp(first,"g"),""); len2 = s.length; json[first] = len1-len2; } //找最大值 for(prop in json){ if(json[prop] > Max.value){ Max.key = prop; Max.value = json[prop] } } console.log(Max); //得出答案
這個(gè)題目還有一個(gè)好方法:
var s = "abcdefghijklabcdaaaefadca"; var json = {}; var Max = { key:"", value:0 }; for(var i=0;iMax.value){ Max.key = prop; Max.value = json[prop] } } console.log(Max); //得出答案 這種算法時(shí)間復(fù)雜度為O(n),可以說是很簡單了!
題目二 : 求下面的輸出值
function Show(){ getName = function(){ console.log(1); } return this; }; Show.getName = function(){ console.log(2); }; Show.prototype.getName = function(){ console.log(3); }; var getName = function(){ console.log("4"); } function getName(){ console.log(5); }; 求這些問題的解: 1、Show.getName(); 2、getName(); 3、Show().getName(); 4、getName(); 5、new Show.getName(); 6、new Show().getName(); 7、new new Show().getName();
這道題目考察的是Javascript基礎(chǔ),
首先要明白JS執(zhí)行過程:
先提升(先提升函數(shù),再提升變量,如果名字一樣,變量提升會(huì)覆蓋函數(shù)提升)
再執(zhí)行,如果遇到閉包創(chuàng)建
在閉包空間中反復(fù)1和2
先定義(提升),在執(zhí)行
變量提升
函數(shù)提升
本題目解答如下:
形如 func.method(函數(shù)名.屬性),函數(shù)也是對(duì)象,發(fā)現(xiàn)Show.getName()有定義,就執(zhí)行方法屬性,輸出2
根據(jù)JS執(zhí)行過程,先提升函數(shù)getName(),再提升變量getName , 同名覆蓋,就知道變量getName覆蓋了其同名函數(shù),執(zhí)行變量getName,結(jié)果是 “4”
形如 func().method() ,意思是先執(zhí)行 func() , 由 func() 的返回值執(zhí)行method方法,所以先要知道 func() 返回值是什么? return this; this指什么呢? 誰調(diào)用指向誰,func是全局調(diào)用 , 所以this指向window ,Show()函數(shù)執(zhí)行后,里面把getName的定義該變了,所以,window.getName() 輸出是 1
getName() , 在當(dāng)前環(huán)境等同于 window.getName() ,輸出是 1
new Show.getName() 先執(zhí)行show.getName()輸出2 在new一下
new Show().getName() 使用了new關(guān)鍵字,是把函數(shù)show當(dāng)成了構(gòu)造器,此時(shí)return沒有作用,getName在構(gòu)造器里沒有,找原型對(duì)象 輸出 3
new new Show().getName() 就是在第六問基礎(chǔ)之上輸出 3 之后,在new一個(gè)
javascript所有的函數(shù)都可以使用 new func()關(guān)鍵字,表示生成一個(gè)對(duì)象。這點(diǎn)理解了,理解上面的就簡單
Javascript 簡單概念
javascript的typeof返回哪些數(shù)據(jù)類型
object , number , function , boolean , undefind , string
檢測數(shù)組的幾種方法 , 檢測obj是否是數(shù)組類型
Array.isArray(obj);
obj instanceof Array
arr.constructor.name
toString.call()
傳統(tǒng)事件綁定和符合W3C標(biāo)準(zhǔn)的事件綁定有什么區(qū)別?
傳統(tǒng)事件綁定:
123
如果說給同一個(gè)元素綁定了兩次或者多次相同類型的事件,那么后面的綁定會(huì)覆蓋前面的綁定
不支持DOM事件流 事件捕獲階段è目標(biāo)元素階段=>事件冒泡階段
符合W3C標(biāo)準(zhǔn)的事件綁定的方式 addEventListener/attachEvent
A、非IE瀏覽器:
addEventListener
如果說給同一個(gè)元素綁定了兩次或者多次相同類型的事件,所以的綁定將會(huì)依次觸發(fā)
支持DOM事件流的
進(jìn)行事件綁定傳參不需要on前綴
addEventListener(“click”,function(){},true);//此時(shí)的事件就是在事件捕獲階段執(zhí)行
第三個(gè)參數(shù):代表是否在捕獲階段執(zhí)行,默認(rèn)值是false
ddEventListener(“click”,function(e){})
addEventListener(“click”,function(){},false) 事件在冒泡階段執(zhí)行
B、IE瀏覽器
ie9開始,ie11 edge:addEventListener
ie9以前 ie8:attachEvent/detachEvent
進(jìn)行事件類型傳參需要帶上on前綴
dom1.attachEvent(“onclick”,functioin(){});
這種方式只支持事件冒泡,不支持事件捕獲
call和apply的區(qū)別
call和apply相同點(diǎn):
都是為了用一個(gè)本不屬于一個(gè)對(duì)象的方法,讓這個(gè)對(duì)象去執(zhí)行
toString.call([],1,2,3)
toString.apply([],[1,2,3])
Object.call(this,obj1,obj2,obj3)
Object.apply(this,arguments)
區(qū)別:
call第二個(gè)參數(shù)開始接受一個(gè)參數(shù)列表
apply第二個(gè)參數(shù)開始接受一個(gè)參數(shù)數(shù)組
jQuery框架中$.ajax()的常用參數(shù)有哪些?
type
類型:String
默認(rèn)值: "GET")。請(qǐng)求方式 ("POST" 或 "GET"), 默認(rèn)為 "GET"。注意:其它 HTTP 請(qǐng)求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。
url
類型:String
默認(rèn)值: 當(dāng)前頁地址。發(fā)送請(qǐng)求的地址。
success
類型:Function 請(qǐng)求成功后的回調(diào)函數(shù)。
參數(shù):由服務(wù)器返回,并根據(jù) dataType 參數(shù)進(jìn)行處理后的數(shù)據(jù);描述狀態(tài)的字符串。
這是一個(gè) Ajax 事件。
options
類型:Object
可選。AJAX 請(qǐng)求設(shè)置。所有選項(xiàng)都是可選的。
async
類型:Boolean
默認(rèn)值: true。默認(rèn)設(shè)置下,所有請(qǐng)求均為異步請(qǐng)求。如果需要發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。
注意,同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。
beforeSend(XHR)
類型:Function
發(fā)送請(qǐng)求前可修改 XMLHttpRequest 對(duì)象的函數(shù),如添加自定義 HTTP 頭。
XMLHttpRequest 對(duì)象是唯一的參數(shù)。
這是一個(gè) Ajax 事件。如果返回 false 可以取消本次 ajax 請(qǐng)求
。
cache
類型:Boolean
默認(rèn)值: true,dataType 為 script 和 jsonp 時(shí)默認(rèn)為 false。設(shè)置為 false 將不緩存此頁面。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/83070.html
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個(gè)和個(gè)經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個(gè)變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補(bǔ)缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 特意對(duì)前端學(xué)習(xí)資源做一個(gè)匯總,方便自己學(xué)習(xí)查閱參考,和好友們共同進(jìn)步。 本以為自己收藏的站點(diǎn)多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補(bǔ)充。有錯(cuò)誤的地方,還請(qǐng)斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會(huì)及時(shí)更新,平時(shí)業(yè)務(wù)工作時(shí)也會(huì)不定期更...
摘要:獲取的對(duì)象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對(duì)象即使沒有代碼,也會(huì)把默認(rèn)的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對(duì)于一個(gè)光禿禿的元素,方法返回對(duì)象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時(shí)間整理的前端面試資源,喜歡請(qǐng)大家不要吝嗇star~ 別只收藏,點(diǎn)個(gè)贊,點(diǎn)個(gè)star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項(xiàng)目地址 https:...
摘要:每天會(huì)折騰一道及以上題目,并將其解題思路記錄成文章,發(fā)布到和微信公眾號(hào)上。三匯總返回目錄在月日月日這半個(gè)月中,做了匯總了數(shù)組知識(shí)點(diǎn)。或者拉到本文最下面,添加的微信等會(huì)根據(jù)題解以及留言內(nèi)容,進(jìn)行補(bǔ)充,并添加上提供題解的小伙伴的昵稱和地址。 LeetCode 匯總 - 2019/08/15 Create by jsliang on 2019-08-12 19:39:34 Recently...
摘要:方法一因?yàn)槭菑拈_始的方法二獲取怎么實(shí)現(xiàn)和截取考察的用法。翻轉(zhuǎn)字符串和刪除數(shù)組的第一元素將字符串轉(zhuǎn)化為數(shù)組。將數(shù)組進(jìn)行翻轉(zhuǎn)。將數(shù)組轉(zhuǎn)換為字符串。被刪除的第一個(gè)元素刪除后的數(shù)組數(shù)組去重如果找到不到就把放到新數(shù)組里 1.運(yùn)算題的結(jié)果 var name=jay var pe={ name:kang, getname:function () { ...
閱讀 593·2021-11-18 13:12
閱讀 1313·2021-11-15 11:39
閱讀 2473·2021-09-23 11:22
閱讀 6193·2021-09-22 15:15
閱讀 3654·2021-09-02 09:54
閱讀 2310·2019-08-30 11:10
閱讀 3245·2019-08-29 14:13
閱讀 2913·2019-08-29 12:49