IE跟DOM事件流有什么區別
① 闡述事件系結方式:
IE9以前:attachEvent(“onclick”)、detachEvent(“onclick”)
IE9開始跟DOM事件流是一樣的,都是addEventListener
② 這兩種系結方式的區別: 寫法上的區別:
attachEvent兩個引數、事件帶on
addEventListener 三個引數、事件不帶on、true/false表示捕獲/冒泡
功能上的區別:
attachEvent系結的事件全部冒泡、addEventListener根據第三個引數是true還是false決定冒泡還是捕獲。
③ 事件冒泡和事件捕獲。 冒泡: 當觸發一個事件時,會從當前節點開始,依次觸發其祖先節點的同型別事件。 捕獲: 從根節點開始,依次觸發其祖先節點同型別事件,直到節點自身。
2IE和標準下有哪些兼容性的寫法?
復制代碼
ev = e || window.event;//獲取事件物件(事件因子): DOM2添加事件: if(dom.attachEvent){ Dom. attachEvent(“onclick”,function); }else{ Dom. addEventListener(“click”,function); } 取消事件冒泡: if (e.stopPropagation) { e.stopPropagation(); //IE以外 } else { e.cancelBubble = true; //IE8之前 } 取消默認事件:if (e.preventDefault) { e.preventDefault(); //IE以外 } else { e.returnValue = false; //IE }
復制代碼
3API是啥? API(Application Programming Interface,應用程式編程介面)是一些預先定義的函式,目的是提供應用程式與開發人員基于某軟體或硬體得以訪問一組例程的能力,而又無需訪問原始碼,或理解內部作業機制的細節。 在編程語言中,API通常指語言中內置的函式、介面、類等系統工具。我們編程人員無需關心這些函式的實作細節,只需要按照API檔案的要求,給函式傳入指定引數接受回傳值即可。 在前后臺傳遞資料,API也是后臺提供給前臺的介面,前臺只需要按照要求請求介面并發送指定引數,結課接受JSON字串。例如:https://api.douban.com/v2/book/1220562
4Javascript事件處理器在執行緒空閑之前不會運行是什么意思? JS是一個單執行緒應用,也就是說,當某一段代碼正在執行的時候,其他代碼如果需要執行也必須等到這個執行緒結束后,才能執行。
for(var i=1;i<=3;i++){ setTimeout(function(){ console.log(i); },0); }; 代碼執行到for回圈時,當for回圈執行第一次,遇到第一個setTimeout時并不會立即觸發,因為for回圈還有結束,現在的執行緒被for回圈阻塞。setTimeout必須等到for回圈的執行緒結束以后,也就是執行緒空閑之后,才能執行,而這時候i已經變成了4. 所以最終列印三個4. 解決的辦法可以將var改成let,或者for回圈中嵌套自執行函式 5js中callee和caller的作用 寫法不同:
callee是Arguments的一個屬性,在函式中使用Arguments.callee呼叫。
Caller在函式中,直接使用函式名呼叫。 Func. Caller 功能不同:
Arguments.callee 回傳的是,當前函式自身的參考!!
Func. Caller 回傳的是,當前函式在哪個函式中呼叫。 如果函式是頂層呼叫,則回傳null
復制代碼 function func(){ console.log(func.caller); } func(); // null function func1(){ func(); } func1(); // 回傳func1
復制代碼 6js中的保留字是啥 程式中預定義的關鍵字(函式名、類名、屬性名、方法名等識別符號)都是js中的保留字。 這些保留字,不允許用戶再次宣告為變數、方法、函式 保留字在編譯器中會變色。 7工廠方式創建js物件是啥方式 (JS中創建物件的多種方式)
① 字面量模式: var obj = {} 混合模式就是我們所說的將屬性添加到成員屬性(建構式模式),將方法添加到原型方法(原型模式) 8js延遲加載的方式有哪些? http://blog.csdn.net/dragoo1/article/details/48155501 +將JS代碼放在檔案最后也是延遲加載的方式之一。
9documen.write和 innerHTML 的區別? documen.write 是直接在整個檔案中,寫入代碼。會覆寫掉其他已有代碼。 innerHTML 是選中一個節點后,修改節點里面的代碼,只影響當前節點。
10javascript 中的垃圾回識訓制?閉包中的記憶體釋放? Js中的垃圾回識訓制,函式中的變數,會在函式執行完成后,被回收處理。 但是,如果函式中使用了閉包,那么函式中的變數將始終被內部的函式持有,而不會在函式執行完成后釋放。 http://www.cnblogs.com/zhwl/p/4664604.html 閉包的兩個重要作用: ① 可以讓函式外部,能夠訪問函式內部的變數。 ② 讓函式內部的變數在函式執行完成后,不會被釋放,而始終保持在記憶體中
11哪些操作會造成記憶體泄漏 大量使用全域變數 大量使用閉包 清除DOM節點時,只清除節點,而沒有洗掉事件 http://www.cnblogs.com/libin-1/p/6013490.html
12js中的精度問題
JS中在浮點數運算或者大整數運算的時候,可能導致不準確的結果出現。 例如0.7+0.1=0.7999999999999 解決辦法可以將數字*10相加,然后再除以10
http://www.cnblogs.com/snandy/p/4943138.html 13defer和async
1.默認參考 script:<script type="text/javascript" src="https://bbs.csdn.net/topics/x.min.js"></script> 當瀏覽器遇到 script 標簽時,檔案的決議將停止,并立即下載并執行腳本,腳本執行完畢后將繼續決議檔案。
2.async模式 <script type="text/javascript" src="https://bbs.csdn.net/topics/x.min.js" async="async"></script> 當瀏覽器遇到 script 標簽時,檔案的決議不會停止,其他執行緒將下載腳本,腳本下載完成后開始執行腳本,腳本執行的程序中檔案將停止決議,直到腳本執行完畢。
3.defer(延遲)模式 <script type="text/javascript" src="https://bbs.csdn.net/topics/x.min.js" defer="defer"></script> 當瀏覽器遇到 script 標簽時,檔案的決議不會停止,其他執行緒將下載腳本,待到檔案決議完成,腳本才會執行。
http://www.cnblogs.com/xuechenlei/p/5947555.html 14解釋下這個css選擇器發生什么? [role=nav]>ul a:not([href^=mailto]){}
[role=nav] 選中頁面中 role屬性等于nav的元素. 也就是導航欄
[role=nav]>ul 導航欄中的子節點 ul
[role=nav]>ul a UL里面的a標簽
a:not([href^=mailto]) 選中a標簽,除了href屬性使用mailto開頭的。
選中導航欄中的ul里面的不是mailto的a標簽。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/121907.html
標籤:非技術區
上一篇:微信小程式商城的必要的幾個頁面
