摘要:以下都是網上整理出來的面試題,答案僅供參考。創建對象判斷數據傳輸方式打開鏈接發送當對象完成第四步數據接收完成,判斷響應狀態之間或者緩存執行回調函數
以下都是網上整理出來的JS面試題,答案僅供參考。
2,截取字符串abcdefg的efg
//alert("abcdefg".substring(4));
3,判斷一個字符串中出現次數最多的字符,統計這個次數
/*var str = "asdfssaaasasasasaa"; var json = {}; for (var i = 0; i < str.length; i++) { if(!json[str.charAt(i)]){ json[str.charAt(i)] = 1; }else{ json[str.charAt(i)]++; } }; var iMax = 0; var iIndex = ""; for(var i in json){ if(json[i]>iMax){ iMax = json[i]; iIndex = i; } } alert("出現次數最多的是:"+iIndex+"出現"+iMax+"次");*/
//4,IE與FF腳本兼容性問題
/
*obj.addEventListener(sEv, fn, false); obj.attachEvent("on"+sEv,fn); detachevet removeEventListener DOMContentLoaded onreadystatechange complete DOMMouseScroll FF onmousewheel 非FF event.wheelDelta 上滾120 下-120 event.detail 上滾-3 下3 obj.getCurrentStyle[attr] getComputedStyle(obj,false)[attr] XMLHttpRequest ActiveXObject("Mircorsoft.XMLHttp") FF本地能設置讀取cookie 其他不行 event ev 事件源 srcElement||target toElement||relatedTarget obj.setCapture();只有ie認 obj.releaseCapture();*/
//5,規避javascript多人開發函數重名問題
命名空間
封閉空間
js模塊化mvc(數據層、表現層、控制層)
seajs
變量轉換成對象的屬性
對象化
//6,javascript面向對象中繼承實現
function Person(name){ this.name = name; } Person.prototype.showName = function(){ alert(this.name); } function Worker(name, job){ Person.apply(this,arguments) this.job = job; } for(var i in Person.prototype){ Worker.prototype = Person.prototype; } new Worker("sl", "coders").showName();
//7,FF下面實現outerHTML
var oDiv = document.createElement("div"); var oDiv1 = document.getElementById("div1"); var oWarp = document.getElementById("warp"); oWarp.insertBefore(oDiv, oDiv1); oDiv.appendChild(oDiv1); var sOut = oDiv.innerHTML; oWarp.insertBefore(oDiv1, oDiv); oWarp.removeChild(oDiv); alert(sOut);
//8,編寫一個方法 求一個字符串的字節長度;
//假設一個中文占兩個字節
var str = "22兩是"; alert(getStrlen(str)) function getStrlen(str){ var json = {len:0}; var re = /[u4e00-u9fa5]/; for (var i = 0; i < str.length; i++) { if(re.test(str.charAt(i))){ json["len"]++; } }; return json["len"]+str.length; }
//9,編寫一個方法 去掉一個數組的重復元素
var arr = [1,2,3,1,43,12,12,1]; var json = {}; var arr2 = []; for (var i = 0; i < arr.length; i++) { if(!json[arr[i]]){ json[arr[i]] = true; }else{ json[arr[i]] = false; } if(json[arr[i]]){ arr2.push(arr[i]); } }; for (var i = 0; i < arr.length; i++) { if(!aa(arr[i], arr2)){ arr2.push(arr[i]) } }; function aa(obj, arr){ for (var i = 0; i < arr.length; i++) { if(arr[i] == obj) return true; else return false; }; } alert(arr2)
//10,寫出3個使用this的典型應用
事件: 如onclick this->發生事件的對象
構造函數 this->new 出來的object
call/apply 改變this
//11、如何深度克隆
var arr = [1,2,43]; var json = {a:6,b:4,c:[1,2,3]}; var str = "sdfsdf"; var json2 = clone(json); alert(json["c"]) function clone(obj){ var oNew = new obj.constructor(obj.valueOf()); if(obj.constructor == Object){ for(var i in obj){ oNew[i] = obj[i]; if(typeof(oNew[i]) == "object"){ clone(oNew[i]); } } } return oNew; }*
//12,JavaScript中如何檢測一個變量是一個String類型?請寫出函數實現
typeof(obj) == "string" obj.constructor == String;
//13,網頁中實現一個計算當年還剩多少時間的倒數計時程序,要求網頁上實時動態顯示“××年還剩××天××時××分××秒”
var oDate = new Date(); var oYear = oDate.getFullYear(); var oNewDate = new Date(); oNewDate.setFullYear(oYear, 11, 31, 23, 59, 59); var iTime = oNewDate.getTime()-oDate.getTime(); var iS = iTime/1000; var iM = oNewDate.getMonth()-oDate.getMonth(); var iDate =iS
//2.你能描述一下你制作一個網頁的工作流程嗎?
//3.你能描述一下漸進增強和優雅降級之間的不同嗎?
//4. 請解釋一下什么是語義化的HTML。
//內容使用特定標簽,通過標簽就能大概了解整體頁面的布局分布
//6. 你如何對網站的文件和資源進行優化?
//7. 為什么利用多個域名來存儲網站資源會更有效?
//確保用戶在不同地區能用最快的速度打開網站,其中某個域名崩潰用戶也能通過其他郁悶訪問網站
//8.請說出三種減低頁面加載時間的方法
1、壓縮css、js文件
2、合并js、css文件,減少http請求
3、外部js、css文件放在最底下
4、減少dom操作,盡可能用變量替代不必要的dom操作
//9.什么是FOUC?你如何來避免FOUC?
由于css引入使用了@import 或者存在多個style標簽以及css文件在頁面底部引入使得css文件加載在html之后導致頁面閃爍、花屏
用link加載css文件,放在head標簽里面
//10.文檔類型的作用是什么?你知道多少種文檔類型?
!文檔類型,一個文檔類型標記是一種標準通用標記語言的文檔類型聲明,它的目的是要告訴標準通用標記語言解析器,它應該使用什么樣的文檔類型定義(DTD)來解析文檔。
影響瀏覽器對html代碼的編譯渲染
html2.0
xHtml
html5
//11.瀏覽器標準模式和怪異模式之間的區別是什么?
盒模型解釋不同
(由于火狐的始終表現的很一致,不種我們操心。所以這里我們重點說IE瀏覽器)
IE6,7,8瀏覽器的標準模式還是怪異模式 盒子模型的 差異
標準盒子盒型 width=width
IE盒子模型 width=width+padding+border
2)可以設置行內元素的高寬
在Standards模式下,給span等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。
3)可設置百分比的高度
在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置高度,子元素設置一個百分比的高度是無效的。
4)用margin:0 auto設置水平居中在IE下會失效
使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效,quirk模式下的解決辦法,用text-align屬性:
body{text-align:center};#content{text-align:left}
5)quirk模式下設置圖片的padding會失效
6)quirk模式下Table中的字體屬性不能繼承上層的設置
7)quirk模式下white-space:pre會失效
http://blog.csdn.net/freshlover/article/details/11616563
http://elf8848.iteye.com/blog/563999
//2.哈希表
具有散列(映射)特性的數據模型
//3.閉包
子函數能被外部調用到,則該作用連上的所有變量都會被保存下來。
//4.請解釋什么是Javascript的模塊模式,并舉出實用實例。
js模塊化mvc(數據層、表現層、控制層)
seajs
命名空間
//5.你如何組織自己的代碼?是使用模塊模式,還是使用經典繼承的方法?
對內:模塊模式
對外:繼承
//9* 你如何優化自己的代碼?
代碼重用
避免全局變量(命名空間,封閉空間,模塊化mvc..)
拆分函數避免函數過于臃腫
注釋
//10.你能解釋一下JavaScript中的繼承是如何工作的嗎?
/子構造函數中執行父構造函數,并用callapply改變this
克隆父構造函數原型上的方法/
//11.useraget.nav
//12.請盡可能詳盡的解釋AJAX的工作原理。
創建ajax對象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))
判斷數據傳輸方式(GET/POST)
打開鏈接 open()
發送 send()
當ajax對象完成第四步(onreadystatechange)數據接收完成,判斷http響應狀態(status)200-300之間或者304(緩存)執行回調函數
var xmlHttp; function createXMLHttpRequest() { if (window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } } var okFunc = function(){ if(xmlHttp.readyState == 4) { if(xmlHttp.status == 200) { $("#msg").html(xmlHttp.responseText); } } } var startAjax = function(){ $("#msg").html("Loading..."); createXMLHttpRequest(); if( !xmlHttp){ return alert("create failed"); } xmlHttp.open("POST", "Test", true); xmlHttp.onreadystatechange = okFunc; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); xmlHttp.send(document); } $(document).ready(function(){ $("#start").click(startAjax); $.post("Test",{"name":"Hello","age":22}); });
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85581.html
摘要:收集的一些前端面試題從面試題發現不足,進而查漏補缺,比通過面試更難得及各大互聯網公司前端筆試面試題篇及各大互聯網公司前端筆試面試題篇面試題個和個經典面試題前端開發面試題如何面試前端工程師很重要個變態題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發現不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯網公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:收集的一些前端面試題從面試題發現不足,進而查漏補缺,比通過面試更難得及各大互聯網公司前端筆試面試題篇及各大互聯網公司前端筆試面試題篇面試題個和個經典面試題前端開發面試題如何面試前端工程師很重要個變態題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發現不足,進而查漏補缺,比通過面試更難得 1 BAT及各大互聯網公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...
摘要:字囊括上百個前端面試題的項目開源了這個項目是什么項目內容這個項目目前在上剛剛開源主要內容如下前端面試題主要整理了高頻且有一定難度的前端面試題對這些面試題進行解讀前端原理詳解針對一些有一定難度面試題涉及的知識點進行詳解比如涉及的編譯原理響應式 20W字囊括上百個前端面試題的項目開源了 這個項目是什么? 項目內容 這個項目目前在GitHub上剛剛開源,主要內容如下: 前端面試題: 主要整...
閱讀 1702·2021-11-18 10:02
閱讀 2218·2021-11-15 11:38
閱讀 2666·2019-08-30 15:52
閱讀 2190·2019-08-29 14:04
閱讀 3231·2019-08-29 12:29
閱讀 2086·2019-08-26 11:44
閱讀 994·2019-08-26 10:28
閱讀 830·2019-08-23 18:37