摘要:以下都是網(wǎng)上整理出來的面試題,答案僅供參考。創(chuàng)建對象判斷數(shù)據(jù)傳輸方式打開鏈接發(fā)送當(dāng)對象完成第四步數(shù)據(jù)接收完成,判斷響應(yīng)狀態(tài)之間或者緩存執(zhí)行回調(diào)函數(shù)
以下都是網(wǎng)上整理出來的JS面試題,答案僅供參考。
2,截取字符串a(chǎn)bcdefg的efg
//alert("abcdefg".substring(4));
3,判斷一個字符串中出現(xiàn)次數(shù)最多的字符,統(tǒng)計這個次數(shù)
/*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("出現(xiàn)次數(shù)最多的是:"+iIndex+"出現(xiàn)"+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本地能設(shè)置讀取cookie 其他不行 event ev 事件源 srcElement||target toElement||relatedTarget obj.setCapture();只有ie認(rèn) obj.releaseCapture();*/
//5,規(guī)避javascript多人開發(fā)函數(shù)重名問題
命名空間
封閉空間
js模塊化mvc(數(shù)據(jù)層、表現(xiàn)層、控制層)
seajs
變量轉(zhuǎn)換成對象的屬性
對象化
//6,javascript面向?qū)ο笾欣^承實現(xiàn)
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,F(xiàn)F下面實現(xiàn)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,編寫一個方法 求一個字符串的字節(jié)長度;
//假設(shè)一個中文占兩個字節(jié)
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,編寫一個方法 去掉一個數(shù)組的重復(fù)元素
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的典型應(yīng)用
事件: 如onclick this->發(fā)生事件的對象
構(gòu)造函數(shù) 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類型?請寫出函數(shù)實現(xiàn)
typeof(obj) == "string" obj.constructor == String;
//13,網(wǎng)頁中實現(xiàn)一個計算當(dāng)年還剩多少時間的倒數(shù)計時程序,要求網(wǎng)頁上實時動態(tài)顯示“××年還剩××天××?xí)r××分××秒”
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.你能描述一下你制作一個網(wǎng)頁的工作流程嗎?
//3.你能描述一下漸進(jìn)增強和優(yōu)雅降級之間的不同嗎?
//4. 請解釋一下什么是語義化的HTML。
//內(nèi)容使用特定標(biāo)簽,通過標(biāo)簽就能大概了解整體頁面的布局分布
//6. 你如何對網(wǎng)站的文件和資源進(jìn)行優(yōu)化?
//7. 為什么利用多個域名來存儲網(wǎng)站資源會更有效?
//確保用戶在不同地區(qū)能用最快的速度打開網(wǎng)站,其中某個域名崩潰用戶也能通過其他郁悶訪問網(wǎng)站
//8.請說出三種減低頁面加載時間的方法
1、壓縮css、js文件
2、合并js、css文件,減少http請求
3、外部js、css文件放在最底下
4、減少dom操作,盡可能用變量替代不必要的dom操作
//9.什么是FOUC?你如何來避免FOUC?
由于css引入使用了@import 或者存在多個style標(biāo)簽以及css文件在頁面底部引入使得css文件加載在html之后導(dǎo)致頁面閃爍、花屏
用link加載css文件,放在head標(biāo)簽里面
//10.文檔類型的作用是什么?你知道多少種文檔類型?
!文檔類型,一個文檔類型標(biāo)記是一種標(biāo)準(zhǔn)通用標(biāo)記語言的文檔類型聲明,它的目的是要告訴標(biāo)準(zhǔn)通用標(biāo)記語言解析器,它應(yīng)該使用什么樣的文檔類型定義(DTD)來解析文檔。
影響瀏覽器對html代碼的編譯渲染
html2.0
xHtml
html5
//11.瀏覽器標(biāo)準(zhǔn)模式和怪異模式之間的區(qū)別是什么?
盒模型解釋不同
(由于火狐的始終表現(xiàn)的很一致,不種我們操心。所以這里我們重點說IE瀏覽器)
IE6,7,8瀏覽器的標(biāo)準(zhǔn)模式還是怪異模式 盒子模型的 差異
標(biāo)準(zhǔn)盒子盒型 width=width
IE盒子模型 width=width+padding+border
2)可以設(shè)置行內(nèi)元素的高寬
在Standards模式下,給span等行內(nèi)元素設(shè)置wdith和height都不會生效,而在quirks模式下,則會生效。
3)可設(shè)置百分比的高度
在standards模式下,一個元素的高度是由其包含的內(nèi)容來決定的,如果父元素沒有設(shè)置高度,子元素設(shè)置一個百分比的高度是無效的。
4)用margin:0 auto設(shè)置水平居中在IE下會失效
使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效,quirk模式下的解決辦法,用text-align屬性:
body{text-align:center};#content{text-align:left}
5)quirk模式下設(shè)置圖片的padding會失效
6)quirk模式下Table中的字體屬性不能繼承上層的設(shè)置
7)quirk模式下white-space:pre會失效
http://blog.csdn.net/freshlover/article/details/11616563
http://elf8848.iteye.com/blog/563999
//2.哈希表
具有散列(映射)特性的數(shù)據(jù)模型
//3.閉包
子函數(shù)能被外部調(diào)用到,則該作用連上的所有變量都會被保存下來。
//4.請解釋什么是Javascript的模塊模式,并舉出實用實例。
js模塊化mvc(數(shù)據(jù)層、表現(xiàn)層、控制層)
seajs
命名空間
//5.你如何組織自己的代碼?是使用模塊模式,還是使用經(jīng)典繼承的方法?
對內(nèi):模塊模式
對外:繼承
//9* 你如何優(yōu)化自己的代碼?
代碼重用
避免全局變量(命名空間,封閉空間,模塊化mvc..)
拆分函數(shù)避免函數(shù)過于臃腫
注釋
//10.你能解釋一下JavaScript中的繼承是如何工作的嗎?
/子構(gòu)造函數(shù)中執(zhí)行父構(gòu)造函數(shù),并用callapply改變this
克隆父構(gòu)造函數(shù)原型上的方法/
//11.useraget.nav
//12.請盡可能詳盡的解釋AJAX的工作原理。
創(chuàng)建ajax對象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))
判斷數(shù)據(jù)傳輸方式(GET/POST)
打開鏈接 open()
發(fā)送 send()
當(dāng)ajax對象完成第四步(onreadystatechange)數(shù)據(jù)接收完成,判斷http響應(yīng)狀態(tài)(status)200-300之間或者304(緩存)執(zhí)行回調(diào)函數(shù)
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}); });
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85581.html
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:收集的一些前端面試題從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得及各大互聯(lián)網(wǎng)公司前端筆試面試題篇及各大互聯(lián)網(wǎng)公司前端筆試面試題篇面試題個和個經(jīng)典面試題前端開發(fā)面試題如何面試前端工程師很重要個變態(tài)題解析如何通過餓了么面試輕 收集的一些前端面試題 從面試題發(fā)現(xiàn)不足,進(jìn)而查漏補缺,比通過面試更難得 1 BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題--Html,Css篇 2 BAT...
摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...
摘要:手冊網(wǎng)超級有用的前端基礎(chǔ)技術(shù)面試問題收集前端面試題目及答案匯總史上最全前端面試題含答案常見前端面試題及答案經(jīng)典面試題及答案精選總結(jié)前端面試過程中最容易出現(xiàn)的問題前端面試題整理騰訊前端面試經(jīng)驗前端基礎(chǔ)面試題部分最新前端面試題攻略前端面試前端入 手冊網(wǎng):http://www.shouce.ren/post/index 超級有用的前端基礎(chǔ)技術(shù)面試問題收集:http://www.codec...
摘要:獲取的對象范圍方法獲取的是最終應(yīng)用在元素上的所有屬性對象即使沒有代碼,也會把默認(rèn)的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據(jù)我測試不同環(huán)境結(jié)果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續(xù)更新中……,可以關(guān)注下github 項目地址 https:...
摘要:字囊括上百個前端面試題的項目開源了這個項目是什么項目內(nèi)容這個項目目前在上剛剛開源主要內(nèi)容如下前端面試題主要整理了高頻且有一定難度的前端面試題對這些面試題進(jìn)行解讀前端原理詳解針對一些有一定難度面試題涉及的知識點進(jìn)行詳解比如涉及的編譯原理響應(yīng)式 20W字囊括上百個前端面試題的項目開源了 這個項目是什么? 項目內(nèi)容 這個項目目前在GitHub上剛剛開源,主要內(nèi)容如下: 前端面試題: 主要整...
閱讀 1715·2021-11-18 10:02
閱讀 2228·2021-11-15 11:38
閱讀 2678·2019-08-30 15:52
閱讀 2201·2019-08-29 14:04
閱讀 3241·2019-08-29 12:29
閱讀 2095·2019-08-26 11:44
閱讀 1004·2019-08-26 10:28
閱讀 842·2019-08-23 18:37