国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

js面試題(下)

zhoutao / 2576人閱讀

摘要:短路運算返回值是什么又稱為短路或,短路如果左側為真,則不再進行右側運算,同時返回左側表達式運算結果。上面是不存在的,所有結果為,轉成就是,那么就會運算,把賦值給的同時,返回值也是,所以打印返回結果是函數內部變量有哪些

DOM元素e的e.getAttribute(propName)和e.propName有什么區別和聯系

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

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

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

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

大部分attribute與property是一一對應關系,修改其中一個會影響另一個,如id,title等屬性

一些布爾屬性的檢測設置需要hasAttribute和removeAttribute來完成,或者設置對應property

像link中href屬性,轉換成property的時候需要通過轉換得到完整URL

一些attribute和property不是一一對應如:form控件中對應的是defaultValue,修改或設置value property修改的是控件當前值,setAttribute修改value屬性不會改變value property

offsetWidth/offsetHeight,clientWidth/clientHeight與scrollWidth/scrollHeight的區別

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

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

scrollWidth/scrollHeight返回值包含content + padding + 溢出內容的尺寸

1.引起內存泄漏的操作有哪些

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

遞歸和迭代的區別是什么,各有什么優缺點?

程序調用自身稱為遞歸,利用變量的原值推出新值稱為迭代,遞歸的優點 大問題轉化為小問題,可以減少代碼量,同時應為代碼精簡,可讀性好, 缺點就是,遞歸調用浪費了空間,而且遞歸太深容易造成堆棧的溢出。迭代的好處 就是代碼運行效率好,因為時間只因循環次數增加而增加,而且沒有額外的空間開銷, 缺點就是代碼不如遞歸簡潔

參考:
深究遞歸和迭代的區別、聯系、優缺點及實例對比
「遞歸」和「迭代」有哪些區別?

什么是事件循環(EVENT LOOP)

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

JavaScript嚴格模式下有哪些不同?

不允許不使用var關鍵字去創建全局變量,拋出ReferenceError

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

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

對象屬性名必須唯一

函數中不可有重名參數

在函數內部對修改參數不會反映到arguments中

淘汰arguments.callee和arguments.caller

不可在if內部聲明函數

拋棄with語句

setTimeout和setInterval的區別,包含內存方面的分析?

setTimeout表示間隔一段時間之后執行一次調用,而setInterval則是每間隔一段時間循環調用,直至clearInterval結束。 內存方面,setTimeout只需要進入一次隊列,不會造成內存溢出,setInterval因為不計算代碼執行時間,有可能同時執行多次代碼, 導致內存溢出。
JS 中settimeout和setinterval函數的區別
setTimeout() 和 setInterval() 本質區別在哪里?

如何實現懶加載?

懶加載就是根據用戶的瀏覽需要記載內容,也就是在用戶即將瀏覽完當前的內容時進行繼續加載內容,這種技術常常用來加載圖片的時候使用。我們判斷用戶是否即將瀏覽到底部之后進行在家內容 這時候可能會需要加載大量的內容,可以使用fragment來優化一下,因為大部分是使用滑動和滾輪來觸發的,因此很有可能會不斷觸發,可以使用函數節流做一個優化,防止用戶不斷觸發。

字符串截取

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

介紹一下ES6的暫時性死區和塊級作用域 js設計模式

請介紹一下裝飾者模式,并實現

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

介紹一下職責鏈模式?

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

詳解 Javascript十大常用設計模式

請說一下實現jsonp的實現思路?

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

如何實現一個雙向數據綁定? 如何實現一個前端模板引擎? 請簡要介紹一下PWA? 請介紹一下你所了解的函數式編程? 將靜態資源放在其他域名的目的是什么?

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

前端如何實現PV和UV的統計? 簡要介紹一下RSA 介紹一下KMP算法? 如何實現對一個DOM元素的深拷貝,包括元素的綁定事件? SPA的路由是如果實現的,如果你來做一個前端路由,你會怎么做? 百度的構建工具FIS你了解嗎? sessionStorage,localStorage,cookie區別 javascript有哪幾種方法定義函數

函數聲明表達式

function操作符

Function 構造函數

ES6:arrow function

js運算符 ===運算符判斷相等的流程是怎樣的

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

==運算符判斷相等的流程是怎樣的

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

<,>,<=,>=的比較規則

所有比較運算符都支持任意類型,但是比較只支持數字和字符串,所以需要執行必要的轉換然后進行比較,轉換規則如下:
1.如果操作數是對象,轉換為原始值:如果valueOf方法返回原始值,則使用這個值,否則使用toString方法的結果,如果轉換失敗則報錯
2.經過必要的對象到原始值的轉換后,如果兩個操作數都是字符串,按照字母順序進行比較(他們的16位unicode值的大小)
3.否則,如果有一個操作數不是字符串,將兩個操作數轉換為數字進行比較

+運算符工作流程

如果有操作數是對象,轉換為原始值

此時如果有一個操作數是字符串,其他的操作數都轉換為字符串并執行連接

否則:所有操作數都轉換為數字并執行加法

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

相同:
== 和 === 都是比較等值比較運算符,返回的布爾類型的比較結果。
不同:

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

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

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

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

其他面試題

前端面試題整理

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/102295.html

相關文章

  • 前端最強面經匯總

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

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

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

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

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

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

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

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

    摘要:收集的一些前端面試題從面試題發現不足,進而查漏補缺,比通過面試更難得及各大互聯網公司前端筆試面試題篇及各大互聯網公司前端筆試面試題篇面試題個和個經典面試題前端開發面試題如何面試前端工程師很重要個變態題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發現不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯網公司2014前端筆試面試題--Html,Css篇 2 BAT...

    ninefive 評論0 收藏0

發表評論

0條評論

zhoutao

|高級講師

TA的文章

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