面試題話術(shù)

什么是閉包

對于閉包,我是這么認(rèn)識的腥沽,在我們這個js當(dāng)中呢逮走,變量分為兩種,一種叫全局變量今阳,一種叫局部變量师溅。在這個變量訪問的過程中,全局變量沒有問題盾舌,在任何地方都可以訪問到墓臭,麻煩就麻煩再局部變量,局部變量默認(rèn)情況下在函數(shù)外邊是訪問不到的妖谴,那這個事情怎么辦呢窿锉,我們就用閉包開始了。
我可以在這個函數(shù)內(nèi)部膝舅,再給他定義一個函數(shù)嗡载,這個就是二重函數(shù),我們分為父和子兩個函數(shù)铸史,那么父函數(shù)內(nèi)聲明的變量鼻疮,在子函數(shù)內(nèi)是可以訪問到的怯伊。而子函數(shù)的這個方法我們認(rèn)為這是一個特權(quán)函數(shù)琳轿,他可以訪問父函數(shù)中的變量,以及其他方法耿芹,這就是閉包產(chǎn)生的由來 崭篡。
那他解決的問題是什么呢,是因?yàn)樵蹅冇袝r在寫一些插件或者寫一些東西的時候吧秕,確實(shí)是需要調(diào)用父方法中的局部變量的琉闪,那這個時候只能對外寫一個接口,就是這個子函數(shù)砸彬。
還有一個颠毙,面向?qū)ο蟮娜筇卣骼锏姆庋b也是要用到閉包的斯入,你怎么把這個變量封裝起來不讓外面訪問,提高代碼安全蛀蜜,那我們只能用閉包刻两。
閉包的優(yōu)點(diǎn)總結(jié)下來就是:1解決了局部變量不能訪問的問題,2體現(xiàn)了面向?qū)ο缶幊讨械姆庋b思想滴某。
雖然閉包有優(yōu)點(diǎn)磅摹,但他同時也存在缺點(diǎn):1閉包會浪費(fèi)很多內(nèi)存資源2閉包會導(dǎo)致內(nèi)存泄漏,同時內(nèi)存的數(shù)據(jù)能遭受攻擊霎奢,容易造成機(jī)器的崩潰户誓。
最后他也同時存在針對缺點(diǎn)的解決方法:1少用閉包2手動清空(也就是說我聲明一個方法函數(shù),讓變量等于null幕侠,最后在執(zhí)行后調(diào)用那個方法)
這就是我對閉包的理解

談?wù)剬s當(dāng)中繼承的看法

那對繼承帝美,我是這么看的。咱們這個繼承一般是針對父方法和子方法來說的晤硕,也就是說有兩個方法证舟,一個父方法,一個子方法窗骑。子方法可以擁有父方法的所有屬性以及方法女责,那對于我們來說,js中常用的繼承有3種创译。
第一種原型鏈繼承:子對象他有一個默認(rèn)屬性是叫proto抵知,他是指向這個方法本身,而方法本身他是不帶父對象的方法或者屬性的软族,所以他得調(diào)用他的prototype 的屬性刷喜,這個prototype屬性他又指向一個對象,這個對象是子方法的原型立砸,那么這個原型他又是用父方法實(shí)例化出來的掖疮,所以他又是他父對象的proto,這個proto又指向的父對象本身內(nèi)個prototype颗祝,這個prototype 又調(diào)用他里面的 屬性和方法浊闪,這樣的話就是他的原型鏈
繼承。
第二個叫構(gòu)造函數(shù)繼承螺戳, 構(gòu)造函數(shù)繼承最重要的一點(diǎn)就是冒充搁宾,父對象定義在子對象
里面,在子對象里面可以引用父對象的屬性和方法倔幼,構(gòu)造函數(shù)繼承我感覺比較簡單盖腿。
再往后就是混合繼承,那就是既有構(gòu)造,又有原型翩腐,這樣的一種繼承方式鸟款。
這就是我對繼承的一種看法。
(call和apply之間的區(qū)別:兩種方法雖然都是繼承屬性茂卦,但書寫格式存在不同
這里call方法是通過this 后跟著一個字符串系列
而apply方法同樣也是通過this 不過傳屬性則是由數(shù)組構(gòu)成

ajax

分為兩種:原生的ajax / jquery的ajax
ajax是什么: 異步提交數(shù)據(jù)(同步)
刷新頁面欠雌,整張頁面閃爍————》同步
當(dāng)你在頁面上操作時,是局部閃爍(進(jìn)度條)————》異步

什么是無刷新:整頁不用刷新疙筹,局部刷新

工作原理

首先要知道富俄,ajax觸發(fā)是由事件觸發(fā),onmouseover onclick onchange
還有一個事件而咆,這個事件就是負(fù)責(zé)監(jiān)控的霍比,onreadystatechange()
readystated
0 還沒有完成初始化
1 已經(jīng)調(diào)用的open方法,還沒有調(diào)用send方法
2 已經(jīng)調(diào)用完了send方法
3 已經(jīng)接收到了服務(wù)器的部分?jǐn)?shù)據(jù)暴备,但是還沒有全部接受完
4 已經(jīng)接收到全部的數(shù)據(jù)悠瞬,響應(yīng)結(jié)束
還有一個status 狀態(tài)值
當(dāng)status狀態(tài)值為200時,也就意味著涯捻,這個訪問成功了
最后得到一個返回值浅妆,responseText沛婴,是以一種序列化的字符串的形式出現(xiàn)

 實(shí)例:假設(shè)點(diǎn)擊按鈕氢惋,通過原生的ajax獲取到j(luò)son數(shù)據(jù)
      通過try catch的方式創(chuàng)建ajax對象
      Function ajaxObj(){
         var xhr;
         //異常處理鳍烁,錯誤處理
         try{       //嘗試執(zhí)行
               Xhr=new ActiveXObject(“Microsoft.XMLHTTP”)       //ie創(chuàng)建ajax
         }catch(e){         //執(zhí)行失敗洛勉,捕獲異常時觸發(fā)       e為錯誤對象
               Xhr=new XMLHttpRequest();        //  其他瀏覽器創(chuàng)建ajax對象
         }
         xhr.open(“get”,”a.php”,true);          xhr.open(“method方法”,”路徑”,”同步或異步”)
         xhr.send(null);
         xhr.onreadystatechange=function(){     //閉包
             If(xhr.readystate==4  &&  xhr.status==200){
                alert(xhr.responseText)     //注意:此時返回的json數(shù)據(jù)是以序列化字符串的格式返回的
             }
         }
      }



 被jquery簡化后的ajax常用的屬性和方法
    $.ajax({
         url:””,                //路徑
         async:””,              //同步或異步,同步false谈竿,異步true
         dataType:””,           //返回預(yù)期類型
         method:””,         //提交方法
         success:function(e){   //成功時觸發(fā)的函數(shù)樱溉,得到返回值
               Alert(e)
         }
    })
六種數(shù)據(jù)類型:數(shù)值類型郑趁,文本類型轿亮,布爾類型疮薇,對象類型,null類型我注,underfined類型

(typeof操作符 解析變量后的數(shù)據(jù)類型)
(檢測對象類型 instanceof())
數(shù)值類型分為:整數(shù)型按咒,浮點(diǎn)型,NAN

各個類型的方法
日期:toLocaleString() 將本地時間轉(zhuǎn)換成字符串
valueOf() 返回當(dāng)前data對象距1970年1月1號午夜的毫秒數(shù)
string類型:charAt() 返回指定位置的字符但骨,括號內(nèi)輸入下標(biāo)
slice() 提取字符的某個部分
(x,y)存在兩個值時励七,截取從x到y(tǒng)
(x)截取從x到字符串結(jié)束
(-x)截取從后往前查時的x到字符串結(jié)束
substr() (x,y)截取以為起點(diǎn),共y個字符
indexOf() 返回括號內(nèi)的值在字符串中首次出現(xiàn)的位置
lastindexOf() 返回括號內(nèi)的值在字符串中最后一次出現(xiàn)的位置
數(shù)組類型: length 返回?cái)?shù)組中元素的個數(shù)
數(shù)組名.Instanceof.Array / Array.isArray(數(shù)組名) 判斷是否為數(shù)組
push() 在數(shù)組末尾增加一個或多個元素
delete 數(shù)組名[下標(biāo)] 刪除數(shù)組指定下標(biāo)的元素
(區(qū)別:添加時元素長度增加嗽冒,刪除時元素長度不變)
pop() 刪除并返回元素的最后一個值
join() 將數(shù)組中所有元素轉(zhuǎn)化為字符串呀伙,以括號中的符號拼接在一起
reverse() 將數(shù)組的順序顛倒
sort() 將數(shù)組元素進(jìn)行排序(字母按順序排序,數(shù)字不定)
slice() 截取數(shù)組片段添坊,將其返回
(x,y)存在兩個值時,截取從x到y(tǒng)
(x)一個值時截取從對應(yīng)下標(biāo)到數(shù)組結(jié)尾
splice() 用于插入箫锤,刪除或替換數(shù)組的元素

構(gòu)造方法原型鏈繼承的思路

每一個javaScript構(gòu)造方法都有一個名稱為prototype的屬性贬蛙,可以指向另一個對象雨女。當(dāng)我們訪問對象屬性時,javaScript引擎會從對象的所有屬性中查找該屬性阳准,如果找到就返回屬性值氛堕,如果沒有找到就繼續(xù)從prototype屬性指向的對象屬性中查找,如果仍然沒有找到野蝇,則會沿著prototype鏈一直查找下去讼稚,知道找到屬性或者prototype鏈結(jié)束。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绕沈,一起剝皮案震驚了整個濱河市锐想,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乍狐,老刑警劉巖赠摇,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異浅蚪,居然都是意外死亡藕帜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門惜傲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洽故,“玉大人,你說我怎么就攤上這事盗誊∈战颍” “怎么了?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵浊伙,是天一觀的道長撞秋。 經(jīng)常有香客問我,道長嚣鄙,這世上最難降的妖魔是什么吻贿? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮哑子,結(jié)果婚禮上舅列,老公的妹妹穿的比我還像新娘。我一直安慰自己卧蜓,他們只是感情好帐要,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著弥奸,像睡著了一般榨惠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天赠橙,我揣著相機(jī)與錄音耽装,去河邊找鬼。 笑死期揪,一個胖子當(dāng)著我的面吹牛掉奄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播凤薛,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼姓建,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了缤苫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤榨馁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后翼虫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡珍剑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年掸宛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唧瘾。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡别凤,死狀恐怖饰序,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情规哪,我是刑警寧澤求豫,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站诉稍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杯巨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一杜恰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧箫章,春花似錦镜会、人聲如沸檬寂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镣屹。三九已至,卻和暖如春女蜈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伪窖。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工居兆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泥栖。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像魏割,于是被迫代替她去往敵國和親钢颂。 傳聞我的和親對象是個殘疾皇子钞它,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

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

  • 在線閱讀 http://interview.poetries.top[http://interview.poetr...
    程序員poetry閱讀 114,318評論 24 450
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法甸陌,內(nèi)部類的語法须揣,繼承相關(guān)的語法,異常的語法钱豁,線程的語...
    子非魚_t_閱讀 31,602評論 18 399
  • 遼闊大地牲尺,岸柳青青卵酪,鶯飛草長幌蚊,小麥拔節(jié)溃卡,油菜花香溢豆,桃紅李白迎春黃瘸羡。 這就是春天,是桃李爭妍的季節(jié)犹赖,...
    李小佳閱讀 1,225評論 0 2
  • 剛懷孕的時候,熙寶總是說要一個妹妹峻村,幼兒園老師,市場買菜的叔叔垢啼,隔壁的阿姨都會逗她,你媽媽會給你生個弟弟吧芭析!她都會...
    趙慧姿閱讀 189評論 2 2