一、typeof運算符和instanceof運算符以及isPrototypeOf()方法的區(qū)別?
答:typeof是一個運算符拉馋,用于檢測數(shù)據(jù)的類型搁廓,比如基本數(shù)據(jù)類型null、undefined陌兑、string、number、boolean奢驯,以及引用數(shù)據(jù)類型object、function次绘,但是對于正則表達式瘪阁、日期撒遣、數(shù)組這些引用數(shù)據(jù)類型,它會全部識別為object管跺;instanceof同樣也是一個運算符义黎,它就能很準確的識別數(shù)據(jù)具體是哪一種引用數(shù)據(jù)類型,它與isPrototypeOf的區(qū)別就是它用來檢測構(gòu)造函數(shù)的原型是否存在于指定對象的原型鏈當中豁跑;而isPrototypeOf是用來檢測調(diào)用此方法的對象是否存在于指定對象的原型鏈中廉涕,返回true,否則返回false艇拍,所以本質(zhì)上就是檢測目標不同火的。
二、call()和apply()的區(qū)別淑倾?
答:實際上馏鹤,apply和call的功能是一樣的,只是傳入的參數(shù)列表形式不同娇哆,apply傳入的是數(shù)組湃累。
三、全局函數(shù)eval()有什么作用碍讨?
答:eval()只是一個參數(shù)治力,如果傳入的參數(shù)不是字符串,它直接返回這個參數(shù)勃黍,如果參數(shù)是字符串宵统,它會把字符串當成javascript代碼進行編譯,如果編譯失敗則拋出一個語法錯誤(syntaxError)異常覆获。如果編譯成功马澈,則開始執(zhí)行這段代碼,并返回字符串中的最后一個表達式語句的值弄息,如果最后一個表達式或語句中沒有值痊班,則最終返回undefined。如果字符串拋出一個異常摹量,這個異常將把該點用傳遞給eval()涤伐。
四、描述一下變量的區(qū)別null缨称、undefined或undeclared凝果?
答:null表示“沒有對象”,即該處不應(yīng)該有值睦尽,轉(zhuǎn)為數(shù)值時為0器净。典型用法是:
(1)、做為函數(shù)的參數(shù)骂删,表達該函數(shù)的參數(shù)不是對象掌动。
(2)、做為對象原型鏈的終點宁玫。
undefined表示“缺少值”粗恢,就是此處應(yīng)該有一個值,但是還沒有定義欧瘪,轉(zhuǎn)為數(shù)值時為NaN眷射。典型用法是:
(1)、變量被聲明了佛掖,但是沒有賦值時妖碉,就等于undefined。
(2)芥被、調(diào)用函數(shù)時欧宜,應(yīng)該提供的參數(shù)沒有提供,該參數(shù)等于undefined拴魄。
(3)冗茸、對象沒有賦值的屬性,該屬性為undefined匹中。
(4)夏漱、函數(shù)沒有返回值時、默認返回undefined顶捷。
undeclared.js語法錯誤挂绰,沒有聲明直接使用,js無法找到對應(yīng)的上下文服赎。
五葵蒂、==和===有什么區(qū)別?
答:首先重虑,==equality同等刹勃,===identity恒等,==嚎尤,兩邊值類型不同的時候荔仁,要先進行類型轉(zhuǎn)換再比較,===不做類型轉(zhuǎn)換芽死,類型不同一定不等乏梁。
六、同步異步关贵?
答:1遇骑、進程同步,就是在發(fā)出一個功能調(diào)用時揖曾,在沒有等到結(jié)果之前落萎,該調(diào)用就不返回亥啦。也就是必須一件事一件事的做,等前一件事做完才能做下一件练链。
2翔脱、異步的概念和同步相反,當一個異步過程調(diào)用發(fā)出后媒鼓,調(diào)用者不能立刻得到結(jié)果届吁。實際處理這個調(diào)用的部件在完成后通過狀態(tài),通知和回調(diào)來通知調(diào)用者绿鸣。
七疚沐、什么是事件代理/事件委托?
答:事件代理/事件委托是利用事件冒泡的特性潮模,將本該綁定在多個元素上的事件綁定在他們的祖先元素上亮蛔,尤其在動態(tài)添加子元素的時候,可以非常方便的提高程序性能擎厢,減小內(nèi)存空間尔邓。
八、什么是事件冒泡锉矢?什么是事件捕獲梯嗽?
答:冒泡型事件:事件按照從最特定的事件目標到最不特定的事件目標(document對象)的順序觸發(fā)。
捕獲型事件:事件從最不精確的對象(document對象)開始出發(fā)沽损,然后到最精確(也可以在窗口級別捕獲事件灯节,不過必須由開發(fā)人員特別指定)。
支持W3C標準的瀏覽器在添加事件時用addEventListener(event.fn.useCaptrue)方法绵估,其中第三個參數(shù)useCapture是一個boolean值炎疆,用來設(shè)置事件捕獲時執(zhí)行還是事件冒泡時執(zhí)行。而不兼容W3C的瀏覽器(IE)用attachEvent()方法国裳,此方法還沒有相關(guān)設(shè)置形入,不過IE的事件模型默認是在事件冒泡時執(zhí)行,也就是在useCaptrue等于false的時候執(zhí)行缝左,所以把在處理事件時把useCaptrue設(shè)置為false是比較安全的亿遂,也實現(xiàn)兼容瀏覽器的效果。
九渺杉、如何阻止冒泡蛇数?
答:w3c的方法是e.stopPropagetion(),IE則是使用e.cancelBubble = true是越。例如wlndow.event?window.event.cancelBubble = true : e.stopPropagetion();return false 也可以阻止冒泡耳舅。
十、簡述javascript中this的指向倚评。
答:第一準則是:this永遠指向函數(shù)運行時所在的對象浦徊,而不是函數(shù)被創(chuàng)建時所在的對象馏予。
1、普通的函數(shù)調(diào)用盔性,函數(shù)被誰調(diào)用霞丧,this就是誰。
2纯出、構(gòu)造函數(shù)的話蚯妇,如果不是new操作符而直接調(diào)用敷燎,this指向window暂筝,用new操作符生成的對象實例后,this指向新生成的對象硬贯。
3焕襟、匿名函數(shù)或不處于任何對象中的函數(shù)this指向window。
4饭豹、如果時call鸵赖、apply等,指定的this是誰就是誰拄衰。
十一它褪、原生對象和宿主對象?
答:原生對象是ECMAScript規(guī)定的對象翘悉,所有內(nèi)置對象都是原生對象茫打,比如Array、Date妖混、RegExp等老赤。
宿主對象是宿主環(huán)境比如瀏覽器規(guī)定的對象,用于完善ECMAScript的執(zhí)行環(huán)境制市,比如Document抬旺、Location、Navigator等祥楣。
十二开财、基本數(shù)據(jù)類型和引用數(shù)據(jù)類型
答:基本數(shù)據(jù)類型有5種:null、undefined误褪、string床未、number、boolean振坚,引用數(shù)據(jù)類型:object薇搁、function、array渡八、date啃洋、regexp等传货。
十三、主要區(qū)別
答:1宏娄、聲明變量時不同的內(nèi)存分配问裕,基本數(shù)據(jù)類型由于占據(jù)空間大小固定且較小,會被存儲在棧當中孵坚,也就是變量訪問的位置粮宛。引用數(shù)據(jù)類型存儲在堆當中,變量訪問其實是一個指針卖宠,它指向存儲對象的內(nèi)存地址巍杈。
2、也正是因為內(nèi)存分配不同扛伍,在復制變量時也不一樣筷畦,基本數(shù)據(jù)類型復制后2個變量是獨立的,因為是把值拷貝了一份刺洒,引用數(shù)據(jù)類型是復制了一個指針鳖宾,兩個變量指向的值時該指針所指向的內(nèi)容,一旦一方修改逆航,另一方也會收到影響鼎文。
3、參數(shù)傳遞不同因俐,雖然函數(shù)的參數(shù)都是按照值傳遞的拇惋,但是引用值傳遞的值是一個內(nèi)存地址,實參和形參指向的是同一個對象女揭,所以函數(shù)內(nèi)部對這個參數(shù)修改會體現(xiàn)在外部蚤假,原始值只是把變量里的值傳遞給參數(shù),之后參數(shù)和這個變量互不影響吧兔。
十四磷仰、ajax的工作原理
答:ajax簡單的來說是通過XmlHttpRequest對象來向服務(wù)器發(fā)送異步請求,從服務(wù)器獲得數(shù)據(jù)境蔼,然后用javascript來操作DOM而更新頁面灶平。
ajax的優(yōu)點:1、最大的一個是頁面無刷新箍土,在頁面內(nèi)與服務(wù)器通信逢享,給用戶的體驗非常好。2
使用異步的方式與服務(wù)器通訊吴藻,不需要打斷客戶的操作瞒爬,具有更迅速的相應(yīng)能力。3、可以把以前一些服務(wù)器負擔的工作轉(zhuǎn)嫁到客戶端侧但,利于客戶端閑置的能力來處理矢空,減輕服務(wù)器和寬帶的負擔,節(jié)約空間和寬帶租用成本禀横,ajax的原則是“按需取數(shù)據(jù)”屁药,可以最大程度的減少冗余請求。4
基于標準化并被廣泛支持的技術(shù)柏锄,不需要下載插件或小程序酿箭。
ajax的缺點:1、ajax對瀏覽器后退機制造成了破壞趾娃,也就是說用戶無法通過瀏覽器的后退按鈕回到前一次操作的頁面缭嫡。雖然有些瀏覽器解決了這個問題,但也并不能改變ajax的機制茫舶,他所帶來的開發(fā)成本是非常高的械巡,和ajax框架所要求的快速開發(fā)是相背離的刹淌,這是ajax所帶來的一個非常嚴重的問題饶氏。2、安全問題有勾,技術(shù)同時也對it
企業(yè)帶來了新的安全威脅疹启,ajax技術(shù)就如同對企業(yè)數(shù)據(jù)建立了一個直接的通道,這使得開發(fā)者在不經(jīng)意間會暴露比以前更多的數(shù)據(jù)和服務(wù)器邏輯蔼卡,3喊崖、對搜索引擎的支持比較弱。4雇逞、破壞了程序異常機制荤懂,至少從目前看來,想ajax.dll,ajaxpro.dll這些ajax框架是會破壞程序的異常機制的塘砸。
2023面試題
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門傅寡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事荐操〈竺停” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵淀零,是天一觀的道長挽绩。 經(jīng)常有香客問我,道長驾中,這世上最難降的妖魔是什么唉堪? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮肩民,結(jié)果婚禮上唠亚,老公的妹妹穿的比我還像新娘。我一直安慰自己持痰,他們只是感情好灶搜,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著工窍,像睡著了一般割卖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上患雏,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吓肋!你這毒婦竟也來了凳怨?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布化焕,位于F島的核電站萄窜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏撒桨。R本人自食惡果不足惜查刻,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凤类。 院中可真熱鬧穗泵,春花似錦、人聲如沸谜疤。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽夷磕。三九已至履肃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間企锌,已是汗流浹背榆浓。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- HTML蚯瞧、CSS相關(guān) HTML5 HTML5新特性 增強了表單,input新增了一些type:color----定...
- 《爛俗前端》[https://juejin.cn/column/7017997240325111845]是一部以前...
- 2018web前端最新面試題總結(jié) 一品擎、Html/Css基礎(chǔ)模塊 基礎(chǔ)部分 什么是HTML埋合?答:? HTML并不是...