1.為什么不能定義1px左右的div容器陨献?
IE6下這個(gè)問(wèn)題是因?yàn)槟J(rèn)的行高造成的,解決的方法也有很多牵祟,例如:
overflow:hidden | zoom:0.08 | line-height:1px
2.加減運(yùn)算
alert('5'+3); //53 string
alert('5'+'3'); //53 string
alert('5'-3); //2 number
alert('5'-'3'); //2 number
3.結(jié)果是:
var bool = !!2; alert(bool)碴卧;//true;
**
技巧:雙向非操作可以把字符串和數(shù)字轉(zhuǎn)換為布爾值弱卡。
**
4.如何在HTML中添加事件,幾種方法住册?
1婶博、標(biāo)簽之中直接添加 onclick="fun()";
2、JS添加 Eobj.onclick = method;
3荧飞、現(xiàn)代事件 IE9以前: obj.attachEvent('onclick', method)凡人;
標(biāo)準(zhǔn)瀏覽器: obj.addEventListener('click', method, false);
5.BOM對(duì)象有哪些,列舉window對(duì)象叹阔?
1挠轴、window對(duì)象 ,是JS的最頂層對(duì)象耳幢,其他的BOM對(duì)象都是window對(duì)象的屬性岸晦;
2欧啤、document對(duì)象,文檔對(duì)象启上;
Window對(duì)象的屬性:
3邢隧、location對(duì)象,瀏覽器當(dāng)前URL信息冈在;
4倒慧、navigator對(duì)象,瀏覽器本身信息包券;
5纫谅、screen對(duì)象,客戶端屏幕信息兴使;
6系宜、history對(duì)象照激,瀏覽器訪問(wèn)歷史信息发魄;
6.bind(), live(), delegate()的區(qū)別
(1)bind: 綁定事件,對(duì)新添加的事件不起作用俩垃,方法用于將一個(gè)處理程序附加到每個(gè)匹配元素的事件上并返回jQuery對(duì)象励幼。
(2)live: 方法將一個(gè)事件處理程序附加到與當(dāng)前選擇器匹配的所有元素(包含現(xiàn)有的或?qū)?lái)添加的)的指定事件上并返回jQuery對(duì)象。
(3)delegate: 方法基于一組特定的根元素將處理程序附加到匹配選擇器的所有元素(現(xiàn)有的或?qū)?lái)的)的一個(gè)或多個(gè)事件上口柳。
最佳實(shí)現(xiàn):on() off()
7.看下列代碼輸出什么苹粟?
var foo = "11"+2-"1";
console.log(foo);
console.log(typeof foo);
執(zhí)行完后foo的值為111,foo的類(lèi)型為Number跃闹。
//已知數(shù)組,Alert出”This is Baidu Campus”
var stringArray = ["This”, "is”, "Baidu”, "Campus”]
alert(stringArray.join(" ")) //
9.你如何優(yōu)化自己的代碼嵌削?
(1)代碼重用
(2)避免全局變量(命名空間,封閉空間望艺,模塊化mvc..)
(3)拆分函數(shù)避免函數(shù)過(guò)于臃腫:?jiǎn)我宦氊?zé)原則
(4)適當(dāng)?shù)淖⑨專(zhuān)绕涫且恍?fù)雜的業(yè)務(wù)邏輯或者是計(jì)算邏輯苛秕,都應(yīng)該寫(xiě)出這個(gè)業(yè)務(wù)邏輯的具體過(guò)程
(5)內(nèi)存管理,尤其是閉包中的變量釋放
10.簡(jiǎn)述readyonly與disabled的區(qū)別
(1)readonly只針對(duì)input(text / password)和textarea有效找默,
(2)disabled對(duì)于所有的表單元素都有效艇劫,當(dāng)表單元素在使用了disabled后,當(dāng)我們將表單以POST或GET的方式提交的話惩激,這個(gè)元素的值不會(huì)被傳遞出去店煞,而readonly會(huì)將該值傳遞出去