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