国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端面試問題-JavaScript

這篇具有很好參考價值的文章主要介紹了前端面試問題-JavaScript。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 閉包

  • 閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)
  • 閉包是指有權訪問另?個函數(shù)作?域中變量的函數(shù),創(chuàng)建閉包的最常?的?式就是在?個函數(shù)內(nèi)創(chuàng)建另?個函數(shù),通過另?個函數(shù)訪問這個函數(shù)的局部變量,利?閉包可以突破作?鏈域
  • 閉包的特性:
    • 函數(shù)內(nèi)再嵌套函數(shù)
    • 內(nèi)部函數(shù)可以引?外層的參數(shù)和變量
    • 參數(shù)和變量不會被垃圾回收機制回收
說說你對閉包的理解
  • 使?閉包主要是為了設計私有的?法和變量。閉包的優(yōu)點是可以避免全局變量的污染,缺點是閉包會常駐內(nèi)存,會增?內(nèi)存使?量,使?不當很容易造成內(nèi)存泄露。在js中,函數(shù)即閉包,只有函數(shù)才會產(chǎn)?作?域的概念
  • 閉包 的最??處有兩個,?個是可以讀取函數(shù)內(nèi)部的變量,另?個就是讓這些變量始終保持在內(nèi)存中
  • 閉包的另?個?處,是封裝對象的私有屬性和私有?法
  • 好處:能夠?qū)崿F(xiàn)封裝和緩存等;
  • 壞處:就是消耗內(nèi)存、不正當使?會造成內(nèi)存溢出的問題
使?閉包的注意點
  • 由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存中,內(nèi)存消耗很?,所以不能濫?閉包,否則會造成??的性能問題,在IE中可能導致內(nèi)存泄露
  • 解決?法是,在退出函數(shù)之前,將不使?的局部變量全部刪除

2 說說你對作?域鏈的理解

  • 作?域鏈的作?是保證執(zhí)?環(huán)境?有權訪問的變量和函數(shù)是有序的,作?域鏈的變量只能向上訪問,變量訪問到 window 對象即被終?,作?域鏈向下訪問變量是不被允許的
  • 簡單的說,作?域就是變量與函數(shù)的可訪問范圍,即作?域控制著變量與函數(shù)的可?性和?命周期

3 JavaScript原型,原型鏈 ? 有什么特點?

  • 每個對象都會在其內(nèi)部初始化?個屬性,就是 prototype (原型),當我們訪問?個對象的屬性時
  • 如果這個對象內(nèi)部不存在這個屬性,那么他就會去 prototype ?找這個屬性,這個prototype ?會有??的 prototype ,于是就這樣?直找下去,也就是我們平時所說的原型鏈的概念
  • 關系: instance.constructor.prototype = instance.proto
  • 特點:
    • JavaScript 對象是通過引?來傳遞的,我們創(chuàng)建的每個新對象實體中并沒有?份屬于??的原型副本。當我們修改原型時,與之相關的對象也會繼承這?改變
  • 當我們需要?個屬性的時, Javascript 引擎會先看當前對象中是否有這個屬性, 如果沒有的
  • 就會查找他的 Prototype 對象是否有這個屬性,如此遞推下去,?直檢索到 Object 內(nèi)建對象

4 請解釋什么是事件代理

  • 事件代理( Event Delegation ),?稱之為事件委托。是 JavaScript 中常?綁定事件的常?技巧。顧名思義,“事件代理”即是把原本需要綁定的事件委托給?元素,讓?元素擔當事件監(jiān)聽的職務。事件代理的原理是DOM元素的事件冒泡。使?事件代理的好處是可以提?性能
  • 可以?量節(jié)省內(nèi)存占?,減少事件注冊,?如在 table 上代理所有 td 的 click 事件就?常棒
  • 可以實現(xiàn)當新增?對象時?需再次對其綁定

5 Javascript如何實現(xiàn)繼承?

  • 構(gòu)造繼承
  • 原型繼承
  • 實例繼承
  • 拷?繼承
  • 原型 prototype 機制或 apply 和 call ?法去實現(xiàn)較簡單,建議使?構(gòu)造函數(shù)與原型混合?式
function Parent(){
this.name = 'wang';
}
function Child(){
this.age = 28;
}
Child.prototype = new Parent();//繼承了Parent,通過原型
var demo = new Child();
alert(demo.age);
alert(demo.name);//得到被繼承的屬性

6 談談This對象的理解

  • this 總是指向函數(shù)的直接調(diào)?者(??間接調(diào)?者)
  • 如果有 new 關鍵字, this 指向 new 出來的那個對象
  • 在事件中, this 指向觸發(fā)這個事件的對象,特殊的是, IE 中的 attachEvent 中的this 總是指向全局對象 Window

7 事件模型

W3C 中定義事件的發(fā)?經(jīng)歷三個階段:捕獲階段( capturing )、?標階段( targetin )、冒泡階段( bubbling )
  • 冒泡型事件:當你使?事件冒泡時,?級元素先觸發(fā),?級元素后觸發(fā)
  • 捕獲型事件:當你使?事件捕獲時,?級元素先觸發(fā),?級元素后觸發(fā)
  • DOM 事件流:同時?持兩種事件模型:捕獲型事件和冒泡型事件
  • 阻?冒泡:在 W3c 中,使? stopPropagation() ?法;在IE下設置 cancelBubble =true
  • 阻?捕獲:阻?事件的默認?為,例如 click - 后的跳轉(zhuǎn)。在 W3c 中,使?preventDefault() ?法,在 IE 下設置 window.event.returnValue = false

8 new操作符具體?了什么呢?

  • 創(chuàng)建?個空對象,并且 this 變量引?該對象,同時還繼承了該函數(shù)的原型
  • 屬性和?法被加?到 this 引?的對象中
  • 新創(chuàng)建的對象由 this 所引?,并且最后隱式的返回 this

9 Ajax原理

  • Ajax 的原理簡單來說是在?戶和服務器之間加了—個中間層( AJAX 引擎),通過XmlHttpRequest 對象來向服務器發(fā)異步請求,從服務器獲得數(shù)據(jù),然后? javascrip t來操作 DOM ?更新??。使?戶操作與服務器響應異步化。這其中最關鍵的?步就是從服務器獲得請求數(shù)據(jù)
  • Ajax 的過程只涉及 JavaScript 、 XMLHttpRequest 和 DOM 。 XMLHttpRequest 是aja x的核?機制
/** 1. 創(chuàng)建連接 **/
var xhr = null;
xhr = new XMLHttpRequest()
/** 2. 連接服務器 **/
xhr.open('get', url, true)
/** 3. 發(fā)送請求 **/
xhr.send(null);
/** 4. 接受請求 **/
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
success(xhr.responseText);
} else {
/** false **/
fail && fail(xhr.status);
}
}
}
ajax 有那些優(yōu)缺點?
  • 優(yōu)點:
    • 通過異步模式,提升了?戶體驗.
    • 優(yōu)化了瀏覽器和服務器之間的傳輸,減少不必要的數(shù)據(jù)往返,減少了帶寬占?.
    • Ajax 在客戶端運?,承擔了?部分本來由服務器承擔的?作,減少了??戶量下的服務器負載。
    • Ajax 可以實現(xiàn)動態(tài)不刷新(局部刷新)
  • 缺點:
    • 安全問題 AJAX 暴露了與服務器交互的細節(jié)。
    • 對搜索引擎的?持?較弱。
    • 不容易調(diào)試。

10 如何解決跨域問題?

?先了解下瀏覽器的同源策略 同源策略 /SOP(Same origin policy) 是?種約定,由Netscape公司1995年引?瀏覽器,它是瀏
覽器最核?也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到 XSS 、 CSFR 等攻擊。所謂同源是指"協(xié)議+域名+端?
"三者相同,即便兩個不同的域名指向同?個ip地址,也?同源
那么怎樣解決跨域問題的呢?
  • 通過jsonp跨域
document.domain + iframe跨域
var script = document.createElement('script');
script.type = 'text/javascript';
// 傳參并指定回調(diào)執(zhí)?函數(shù)為onBack
script.src = 'http://www.....:8080/login?user=admin&callback=onBack';
document.head.appendChild(script);
// 回調(diào)執(zhí)?函數(shù)
function onBack(res) {
alert(JSON.stringify(res));
}
  • document.domain + iframe跨域

    此?案僅限主域相同,?域不同的跨域應?場景
    

1.)?窗?:(http://www.domain.com/a.html)

<iframe id="iframe" src="http://child.domain.com/b.html"></iframe>
<script>
document.domain = 'domain.com';
var user = 'admin';
</script>

2.)?窗?:(http://child.domain.com/b.html)文章來源地址http://www.zghlxwxcb.cn/news/detail-557605.html

document.domain = 'domain.com';
// 獲取?窗?中變量
alert('get js data from parent ---> ' + window.parent.user);
  • nginx代理跨域
  • nodejs中間件代理跨域
  • 后端在頭部信息??設置安全域名

11 模塊化開發(fā)怎么做?

  • ?即執(zhí)?函數(shù),不暴露私有成員
var module1 = (function(){
var _count = 0;
var m1 = function(){
//...
};
var m2 = function(){
//...
};
return {
m1 : m1,
m2 : m2
};
})();

12 異步加載JS的?式有哪些?

  • defer,只?持 IE
  • async :
  • 創(chuàng)建 script ,插?到 DOM 中,加載完畢后 callBack

13 那些操作會造成內(nèi)存泄漏?

  • 內(nèi)存泄漏指任何對象在您不再擁有或需要它之后仍然存在
  • setTimeout 的第?個參數(shù)使?字符串??函數(shù)的話,會引發(fā)內(nèi)存泄漏
  • 閉包使?不當

14 XML和JSON的區(qū)別?

  • 數(shù)據(jù)體積??
    • JSON 相對 于XML 來講,數(shù)據(jù)的體積?,傳遞的速度更快些。
  • 數(shù)據(jù)交互??
    • JSON 與 JavaScript 的交互更加?便,更容易解析處理,更好的數(shù)據(jù)交互
  • 數(shù)據(jù)描述??
    • JSON 對數(shù)據(jù)的描述性? XML 較差
  • 傳輸速度??
    • JSON 的速度要遠遠快于 XML

15 談談你對webpack的看法

  • WebPack 是?個模塊打包?具,你可以使? WebPack 管理你的模塊依賴,并編繹輸出模塊們所需的靜態(tài)?件。它能夠很好地管理、打包 Web 開發(fā)中所?到的 HTML 、Javascript 、 CSS 以及各種靜態(tài)?件(圖?、字體等),讓開發(fā)過程更加?效。對于不同類型的資源, webpack 有對應的模塊加載器。 webpack 模塊打包器會分析模塊間的依賴關系,最后 ?成了優(yōu)化且合并后的靜態(tài)資源

到了這里,關于前端面試問題-JavaScript的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【自看】2023前端面試上岸手冊——JavaScript

    【自看】2023前端面試上岸手冊——JavaScript

    JavaScript 共有八種數(shù)據(jù)類型,分別是 Undefined、Null、Boolean、 Number、String、Object、Symbol、BigInt。 其中 Symbol 和 BigInt 是ES6 中新增的數(shù)據(jù)類型: Symbol 代表創(chuàng)建后獨一無二且不可變的數(shù)據(jù)類型,它主要是為了解決可能出現(xiàn)的全局變量沖突的問題。 BigInt 是一種數(shù)字類型的數(shù)據(jù),它可

    2024年02月02日
    瀏覽(33)
  • 【直接收藏】前端JavaScript面試100問(中)

    1、https協(xié)議需要到ca申請證書,一般免費證書較少,因而需要一定費用。 2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。 3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。 4、http的連接很簡單,是無狀

    2024年02月08日
    瀏覽(22)
  • 【直接收藏】前端JavaScript面試100問(上)

    【直接收藏】前端JavaScript面試100問(上)

    閉包:就是能夠讀取外層函數(shù)內(nèi)部變量的函數(shù)。 閉包需要滿足三個條件: 訪問所在作用域; 函數(shù)嵌套; 在所在作用域外被調(diào)用 。 優(yōu)點:可以重復使用變量,并且不會造成變量污染 。 缺點:會引起內(nèi)存泄漏 使用閉包的注意點: 由于閉包會使得函數(shù)中的變量都被保存在內(nèi)存

    2024年02月08日
    瀏覽(40)
  • web前端Javascript—7道關于前端的面試題

    本文主要是web前端Javascript—的面試題,附上相關問題以及解決答案,希望對大家web前端Javascript閉包的學習有所幫助。 每個JavaScript 程序員都必須知道閉包是什么。在 JavaScript 面試中,你很可能會被問到的問題 以下是 7 個有關 JavaScript的面試題,比較有挑戰(zhàn)性。不要查看答案

    2024年02月03日
    瀏覽(98)
  • 【學姐面試寶典】前端基礎篇Ⅳ(JavaScript)

    【學姐面試寶典】前端基礎篇Ⅳ(JavaScript)

    前言 博主主頁????蠟筆雛田學代碼 專欄鏈接????【前端面試專欄】 今天繼續(xù)學習前端面試題相關的知識! 感興趣的小伙伴一起來看看吧~?? webpack 是一個現(xiàn)代 JavaScript 應用程序的 靜態(tài)模塊打包器(module bundler) 。當webpack 處理應用程序時,它會遞歸地構(gòu)建一個依賴關系圖

    2023年04月09日
    瀏覽(30)
  • 前端經(jīng)典面試題 | 吊打面試官系列 之 說說你對TypeScript 和 JavaScript的理解

    ??? 前端經(jīng)典面試題 專欄:吊打面試官系列 之 說說你對TypeScript 和 JavaScript的理解 ????? 個人簡介:一個不甘平庸的平凡人?? ? 個人主頁:CoderHing的個人主頁 ?? 格言: ?? 路漫漫其修遠兮,吾將上下而求索?? ?? 你的一鍵三連是我更新的最大動力?? 目錄 一、回答

    2024年01月17日
    瀏覽(41)
  • 【JavaScript】手撕前端面試題:寄生組合式繼承 | 發(fā)布訂閱模式 | 觀察者模式

    ?????個人簡介:大三學生,一個不甘平庸的平凡人?? ??? NodeJS專欄:Node.js從入門到精通 ??? 博主的前端之路(源創(chuàng)征文一等獎作品):前端之行,任重道遠(來自大三學長的萬字自述) ??? TypeScript知識總結(jié):TypeScript從入門到精通(十萬字超詳細知識點總結(jié)) ??

    2023年04月08日
    瀏覽(96)
  • 【前端】vscode javascript 代碼片段失效問題解決

    【前端】vscode javascript 代碼片段失效問題解決

    1. 文件--首選項--用戶代碼片段-vue.json : 添加 ? ?在category.vue 文件空白處輸入h ,可以顯示用戶片段 ?在script中使用失敗 ?問題原因和解決:?在script使用的代碼片段寫在 javacript.json 中才能使用 VScode-Vue-用戶代碼片段無效 - Code World ? ? ? ?

    2024年01月25日
    瀏覽(28)
  • 【JavaScript】手撕前端面試題:手寫Object.create | 手寫Function.call | 手寫Function.bind

    【JavaScript】手撕前端面試題:手寫Object.create | 手寫Function.call | 手寫Function.bind

    ??? NodeJS專欄:Node.js從入門到精通 ??? 博主的前端之路(源創(chuàng)征文一等獎作品):前端之行,任重道遠(來自大三學長的萬字自述) ??? TypeScript知識總結(jié):TypeScript從入門到精通(十萬字超詳細知識點總結(jié)) ?????個人簡介:大三學生,一個不甘平庸的平凡人?? ??

    2024年02月21日
    瀏覽(42)
  • 手撕前端面試題【javascript~ 總成績排名、子字符串頻次統(tǒng)計、繼承、判斷斐波那契數(shù)組等】

    手撕前端面試題【javascript~ 總成績排名、子字符串頻次統(tǒng)計、繼承、判斷斐波那契數(shù)組等】

    html頁面的骨架,相當于人的骨頭,只有骨頭是不是看著有點瘆人,只有HTML也是如此。 css,相當于把骨架修飾起來,相當于人的皮肉。 js(javascripts),動起來,相當于人的血液,大腦等一切能使人動起來的器官或者其他的。 在刷題之前先介紹一下???。Leetcode有的刷題牛客都有,

    2024年01月15日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包