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

資訊專欄INFORMATION COLUMN

js面試題(下)

zhoutao / 2637人閱讀

摘要:短路運(yùn)算返回值是什么又稱為短路或,短路如果左側(cè)為真,則不再進(jìn)行右側(cè)運(yùn)算,同時(shí)返回左側(cè)表達(dá)式運(yùn)算結(jié)果。上面是不存在的,所有結(jié)果為,轉(zhuǎn)成就是,那么就會運(yùn)算,把賦值給的同時(shí),返回值也是,所以打印返回結(jié)果是函數(shù)內(nèi)部變量有哪些

DOM元素e的e.getAttribute(propName)和e.propName有什么區(qū)別和聯(lián)系

e.getAttribute(),是標(biāo)準(zhǔn)DOM操作文檔元素屬性的方法,具有通用性可在任意文檔上使用,返回元素在源文件中設(shè)置的屬性

e.propName通常是在HTML文檔中訪問特定元素的特性,瀏覽器解析元素后生成對應(yīng)對象(如a標(biāo)簽生成HTMLAnchorElement),這些對象的特性會根據(jù)特定規(guī)則結(jié)合屬性設(shè)置得到,對于沒有對應(yīng)特性的屬性,只能使用getAttribute進(jìn)行訪問

e.getAttribute()返回值是源文件中設(shè)置的值,類型是字符串或者null(有的實(shí)現(xiàn)返回"")

e.propName返回值可能是字符串、布爾值、對象、undefined等

大部分attribute與property是一一對應(yīng)關(guān)系,修改其中一個(gè)會影響另一個(gè),如id,title等屬性

一些布爾屬性的檢測設(shè)置需要hasAttribute和removeAttribute來完成,或者設(shè)置對應(yīng)property

像link中href屬性,轉(zhuǎn)換成property的時(shí)候需要通過轉(zhuǎn)換得到完整URL

一些attribute和property不是一一對應(yīng)如:form控件中對應(yīng)的是defaultValue,修改或設(shè)置value property修改的是控件當(dāng)前值,setAttribute修改value屬性不會改變value property

offsetWidth/offsetHeight,clientWidth/clientHeight與scrollWidth/scrollHeight的區(qū)別

offsetWidth/offsetHeight返回值包含content + padding + border,效果與e.getBoundingClientRect()相同

clientWidth/clientHeight返回值只包含content + padding,如果有滾動條,也不包含滾動條

scrollWidth/scrollHeight返回值包含content + padding + 溢出內(nèi)容的尺寸

1.引起內(nèi)存泄漏的操作有哪些

1.全局變量引起
2.閉包引起
3.dom清空,事件未清除
4.子元素存在引用
5.被遺忘的計(jì)時(shí)器

遞歸和迭代的區(qū)別是什么,各有什么優(yōu)缺點(diǎn)?

程序調(diào)用自身稱為遞歸,利用變量的原值推出新值稱為迭代,遞歸的優(yōu)點(diǎn) 大問題轉(zhuǎn)化為小問題,可以減少代碼量,同時(shí)應(yīng)為代碼精簡,可讀性好, 缺點(diǎn)就是,遞歸調(diào)用浪費(fèi)了空間,而且遞歸太深容易造成堆棧的溢出。迭代的好處 就是代碼運(yùn)行效率好,因?yàn)闀r(shí)間只因循環(huán)次數(shù)增加而增加,而且沒有額外的空間開銷, 缺點(diǎn)就是代碼不如遞歸簡潔

參考:
深究遞歸和迭代的區(qū)別、聯(lián)系、優(yōu)缺點(diǎn)及實(shí)例對比
「遞歸」和「迭代」有哪些區(qū)別?

什么是事件循環(huán)(EVENT LOOP)

我們常常說js是單線程的,是指js執(zhí)行引擎是單線程的,除了這個(gè)單線程,還有一個(gè) 任務(wù)隊(duì)列,在執(zhí)行js代碼的過程中,執(zhí)行引擎遇到注冊的延時(shí)方法,如定時(shí)器,DOM事件, 會將這些方法交給相應(yīng)的瀏覽器模塊處理,當(dāng)這些延時(shí)方法有觸發(fā)條件去觸發(fā)的時(shí)候, 這些延時(shí)方法會被添加至任務(wù)隊(duì)列,而這些任務(wù)隊(duì)列中的方法只有js的主線程空閑了才會執(zhí)行, 這也就是說我們常常用的定時(shí)器定的時(shí)間參數(shù)只是一個(gè)觸發(fā)條件,具體多少時(shí)間后執(zhí)行其實(shí)還需要看 js主線程空閑與否
【轉(zhuǎn)向Javascript系列】從setTimeout說事件循環(huán)模型
深入淺出JavaScript事件循環(huán)機(jī)制(上)
深入淺出JavaScript事件循環(huán)機(jī)制(下)
并發(fā)模型與事件循環(huán)

JavaScript嚴(yán)格模式下有哪些不同?

不允許不使用var關(guān)鍵字去創(chuàng)建全局變量,拋出ReferenceError

不允許對變量使用delete操作符,拋ReferenceError

不可對對象的只讀屬性賦值,不可對對象的不可配置屬性使用delete操作符,不可為不可拓展的對象添加屬性,均拋- - TypeError

對象屬性名必須唯一

函數(shù)中不可有重名參數(shù)

在函數(shù)內(nèi)部對修改參數(shù)不會反映到arguments中

淘汰arguments.callee和arguments.caller

不可在if內(nèi)部聲明函數(shù)

拋棄with語句

setTimeout和setInterval的區(qū)別,包含內(nèi)存方面的分析?

setTimeout表示間隔一段時(shí)間之后執(zhí)行一次調(diào)用,而setInterval則是每間隔一段時(shí)間循環(huán)調(diào)用,直至clearInterval結(jié)束。 內(nèi)存方面,setTimeout只需要進(jìn)入一次隊(duì)列,不會造成內(nèi)存溢出,setInterval因?yàn)椴挥?jì)算代碼執(zhí)行時(shí)間,有可能同時(shí)執(zhí)行多次代碼, 導(dǎo)致內(nèi)存溢出。
JS 中settimeout和setinterval函數(shù)的區(qū)別
setTimeout() 和 setInterval() 本質(zhì)區(qū)別在哪里?

如何實(shí)現(xiàn)懶加載?

懶加載就是根據(jù)用戶的瀏覽需要記載內(nèi)容,也就是在用戶即將瀏覽完當(dāng)前的內(nèi)容時(shí)進(jìn)行繼續(xù)加載內(nèi)容,這種技術(shù)常常用來加載圖片的時(shí)候使用。我們判斷用戶是否即將瀏覽到底部之后進(jìn)行在家內(nèi)容 這時(shí)候可能會需要加載大量的內(nèi)容,可以使用fragment來優(yōu)化一下,因?yàn)榇蟛糠质鞘褂没瑒雍蜐L輪來觸發(fā)的,因此很有可能會不斷觸發(fā),可以使用函數(shù)節(jié)流做一個(gè)優(yōu)化,防止用戶不斷觸發(fā)。

字符串截取

js字符串截取方法有substring、slice、substr三個(gè)方法,substring和slice都是指定截取的首尾索引值,不同的是傳遞負(fù)值的時(shí)候 substring會當(dāng)做0來處理,而slice傳入負(fù)值的規(guī)則是-1指最后一個(gè)字符,substr方法則是第一個(gè)參數(shù)是開始截取的字符串,第二個(gè)是截取的字符數(shù)量, 和slice類似,傳入負(fù)值也是從尾部算起的。

介紹一下ES6的暫時(shí)性死區(qū)和塊級作用域 js設(shè)計(jì)模式

請介紹一下裝飾者模式,并實(shí)現(xiàn)

在不改變元對象的基礎(chǔ)上,對這個(gè)對象進(jìn)行包裝和拓展(包括添加屬性和方法),從而使這個(gè)對象可以有更復(fù)雜的功能。

介紹一下職責(zé)鏈模式?

在不改變元對象的基礎(chǔ)上,對這個(gè)對象進(jìn)行包裝和拓展(包括添加屬性和方法),從而使這個(gè)對象可以有更復(fù)雜的功能。

詳解 Javascript十大常用設(shè)計(jì)模式

請說一下實(shí)現(xiàn)jsonp的實(shí)現(xiàn)思路?

jsonp的原理是使用script標(biāo)簽來實(shí)現(xiàn)跨域,因?yàn)閟cript標(biāo)簽的的src屬性是不受同源策略的影響的,因此可以使用其來跨域。一個(gè)最簡單的jsonp就是創(chuàng)建一個(gè)script標(biāo)簽,設(shè)置src為相應(yīng)的url,在url之后添加相應(yīng)的callback,格式類似于 url?callback=xxx,服務(wù)端根據(jù)我們的callback來返回相應(yīng)的數(shù)據(jù),類似于res.send(req.query.callback + "("+ data + ")"),這樣就實(shí)現(xiàn)了一個(gè)最簡單的jsonp
jsonp的原理與實(shí)現(xiàn)
fetch-jsonp源碼

如何實(shí)現(xiàn)一個(gè)雙向數(shù)據(jù)綁定? 如何實(shí)現(xiàn)一個(gè)前端模板引擎? 請簡要介紹一下PWA? 請介紹一下你所了解的函數(shù)式編程? 將靜態(tài)資源放在其他域名的目的是什么?

這樣做的主要目的是在請求這些靜態(tài)資源的時(shí)候不會發(fā)送cookie,節(jié)省了流量,需要注意的是cookie是會發(fā)送給子域名的(二級域名),所以這些靜態(tài)資源是不會放在子域名下的, 而是多帶帶放在一個(gè)多帶帶的主域名下。同時(shí)還有一個(gè)原因就是瀏覽器對于一個(gè)域名會有請求數(shù)的限制,這種方法可以方便做CDN。
為什么淘寶、騰訊等會把靜態(tài)資源放在另外一個(gè)主域名下?
為什么很多網(wǎng)站的靜態(tài)資源會使用獨(dú)立的域名?

前端如何實(shí)現(xiàn)PV和UV的統(tǒng)計(jì)? 簡要介紹一下RSA 介紹一下KMP算法? 如何實(shí)現(xiàn)對一個(gè)DOM元素的深拷貝,包括元素的綁定事件? SPA的路由是如果實(shí)現(xiàn)的,如果你來做一個(gè)前端路由,你會怎么做? 百度的構(gòu)建工具FIS你了解嗎? sessionStorage,localStorage,cookie區(qū)別 javascript有哪幾種方法定義函數(shù)

函數(shù)聲明表達(dá)式

function操作符

Function 構(gòu)造函數(shù)

ES6:arrow function

js運(yùn)算符 ===運(yùn)算符判斷相等的流程是怎樣的

1.如果兩個(gè)值不是相同類型,它們不相等
2.如果兩個(gè)值都是null或者都是undefined,它們相等
3.如果兩個(gè)值都是布爾類型true或者都是false,它們相等
4.如果其中有一個(gè)是NaN,它們不相等
5.如果都是數(shù)值型并且數(shù)值相等,他們相等, -0等于0
6.如果他們都是字符串并且在相同位置包含相同的16位值,他它們相等;如果在長度或者內(nèi)容上不等,它們不相等;兩個(gè)字符串顯示結(jié)果相同但是編碼不同==和===都認(rèn)為他們不相等
7.如果他們指向相同對象、數(shù)組、函數(shù),它們相等;如果指向不同對象,他們不相等

==運(yùn)算符判斷相等的流程是怎樣的

1.如果兩個(gè)值類型相同,按照===比較方法進(jìn)行比較
2.如果類型不同,使用如下規(guī)則進(jìn)行比較
3.如果其中一個(gè)值是null,另一個(gè)是undefined,它們相等
4.如果一個(gè)值是數(shù)字另一個(gè)是字符串,將字符串轉(zhuǎn)換為數(shù)字進(jìn)行比較
5.如果有布爾類型,將true轉(zhuǎn)換為1,false轉(zhuǎn)換為0,然后用==規(guī)則繼續(xù)比較
6.如果一個(gè)值是對象,另一個(gè)是數(shù)字或字符串,將對象轉(zhuǎn)換為原始值然后用==規(guī)則繼續(xù)比較
7.其他所有情況都認(rèn)為不相等

<,>,<=,>=的比較規(guī)則

所有比較運(yùn)算符都支持任意類型,但是比較只支持?jǐn)?shù)字和字符串,所以需要執(zhí)行必要的轉(zhuǎn)換然后進(jìn)行比較,轉(zhuǎn)換規(guī)則如下:
1.如果操作數(shù)是對象,轉(zhuǎn)換為原始值:如果valueOf方法返回原始值,則使用這個(gè)值,否則使用toString方法的結(jié)果,如果轉(zhuǎn)換失敗則報(bào)錯(cuò)
2.經(jīng)過必要的對象到原始值的轉(zhuǎn)換后,如果兩個(gè)操作數(shù)都是字符串,按照字母順序進(jìn)行比較(他們的16位unicode值的大小)
3.否則,如果有一個(gè)操作數(shù)不是字符串,將兩個(gè)操作數(shù)轉(zhuǎn)換為數(shù)字進(jìn)行比較

+運(yùn)算符工作流程

如果有操作數(shù)是對象,轉(zhuǎn)換為原始值

此時(shí)如果有一個(gè)操作數(shù)是字符串,其他的操作數(shù)都轉(zhuǎn)換為字符串并執(zhí)行連接

否則:所有操作數(shù)都轉(zhuǎn)換為數(shù)字并執(zhí)行加法

"==" 和 "===" 有什么不同

相同:
== 和 === 都是比較等值比較運(yùn)算符,返回的布爾類型的比較結(jié)果。
不同:

1) == 是等值比較運(yùn)算符,使用的是 抽象等值 比較算法。
   === 是嚴(yán)格等值比較運(yùn)算符,使用的 嚴(yán)格等值 比較算法。
2) == 運(yùn)算符在比較值的時(shí)候,會根據(jù)兩者類型是否相同而做不同的處理,
在兩者不同類型的時(shí)候,會轉(zhuǎn)換類型后進(jìn)行比較:
基本類型會轉(zhuǎn)成數(shù)字,引用類型會轉(zhuǎn)成對象原始值,然后再進(jìn)行比較。
而 === 首先也會判斷類型是否一致,不同的是如果類型不一致則直接返回 false。
短路運(yùn)算

window.foo || (window.foo = "bar"); 返回值是什么?

又稱為短路或,短路:如果左側(cè)為真,則不再進(jìn)行右側(cè)運(yùn)算,同時(shí)返回左側(cè)表達(dá)式運(yùn)算結(jié)果。
如果左側(cè)為假則執(zhí)行右側(cè)表達(dá)式運(yùn)算,并返回右側(cè)計(jì)算結(jié)果。
上面window.foo是不存在的,所有結(jié)果為undefined,轉(zhuǎn)成boolean就是false,
那么就會運(yùn)算 window.foo = "bar",
把 "bar" 賦值給 window.foo 的同時(shí),
返回值也是 "foo",所以打印返回結(jié)果是 "bar"
函數(shù)內(nèi)部arguments變量有哪些特性,有哪些屬性,如何將它轉(zhuǎn)換為數(shù)組

arguments所有函數(shù)中都包含的一個(gè)局部變量,是一個(gè)類數(shù)組對象,對應(yīng)函數(shù)調(diào)用時(shí)的實(shí)參。如果函數(shù)定義同名參數(shù)會在調(diào)用時(shí)覆蓋默認(rèn)對象
arguments[index]分別對應(yīng)函數(shù)調(diào)用時(shí)的實(shí)參,并且通過arguments修改實(shí)參時(shí)會同時(shí)修改實(shí)參
arguments.length為實(shí)參的個(gè)數(shù)(Function.length表示形參長度)
arguments.callee為當(dāng)前正在執(zhí)行的函數(shù)本身,使用這個(gè)屬性進(jìn)行遞歸調(diào)用時(shí)需注意this的變化
arguments.caller為調(diào)用當(dāng)前函數(shù)的函數(shù)(已被遺棄)
轉(zhuǎn)換為數(shù)組:var args = Array.prototype.slice.call(arguments, 0);

其他面試題

前端面試題整理

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

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

相關(guān)文章

  • 前端最強(qiáng)面經(jīng)匯總

    摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認(rèn)的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個(gè)光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時(shí)間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點(diǎn)個(gè)贊,點(diǎn)個(gè)star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項(xiàng)目地址 https:...

    wangjuntytl 評論0 收藏0
  • 【周刊-2】三年大廠面試官-前端面試(偏難)

    摘要:前言在大廠工作了年,當(dāng)了年的前端面試官,把大廠常問的面試題與答案匯總在我的中。第題如何劫持的請求,提供思路難度阿里騰訊很多人在上搜索前端面試詳解,把答案倒背如流,但是問到如何劫持請求的時(shí)候就一臉懵逼,是因?yàn)檫€是停留在理論性階段。前言 在大廠工作了6年,當(dāng)了3年的前端面試官,把大廠常問的面試題與答案匯總在我的Github中。希望對大家有所幫助,助力大家進(jìn)入自己理想的企業(yè)。 項(xiàng)目地址是:git...

    silvertheo 評論0 收藏0
  • 【周刊-2】三年大廠面試官-前端面試(偏難)

    摘要:前言在大廠工作了年,當(dāng)了年的前端面試官,把大廠常問的面試題與答案匯總在我的中。第題如何劫持的請求,提供思路難度阿里騰訊很多人在上搜索前端面試詳解,把答案倒背如流,但是問到如何劫持請求的時(shí)候就一臉懵逼,是因?yàn)檫€是停留在理論性階段。 前言 在大廠工作了6年,當(dāng)了3年的前端面試官,把大廠常問的面試題與答案匯總在我的Github中。希望對大家有所幫助,助力大家進(jìn)入自己理想的企業(yè)。 項(xiàng)目地址是:...

    madthumb 評論0 收藏0
  • 【周刊-2】三年大廠面試官-前端面試(偏難)

    摘要:前言在大廠工作了年,當(dāng)了年的前端面試官,把大廠常問的面試題與答案匯總在我的中。第題如何劫持的請求,提供思路難度阿里騰訊很多人在上搜索前端面試詳解,把答案倒背如流,但是問到如何劫持請求的時(shí)候就一臉懵逼,是因?yàn)檫€是停留在理論性階段。 前言 在大廠工作了6年,當(dāng)了3年的前端面試官,把大廠常問的面試題與答案匯總在我的Github中。希望對大家有所幫助,助力大家進(jìn)入自己理想的企業(yè)。 項(xiàng)目地址是:...

    joywek 評論0 收藏0
  • 你不能錯(cuò)過的前端面試合集

    摘要:收集的一些前端面試題從面試題發(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...

    ninefive 評論0 收藏0

發(fā)表評論

0條評論

zhoutao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<