1.為什么不能定義1px左右的div容器?
IE6下這個問題是因為默認的行高造成的,解決的方法也有很多,例如:
overflow:hidden | zoom:0.08 | line-height:1px
2.加減運算
alert('5'+3); //53 string
alert('5'+'3'); //53 string
alert('5'-3); //2 number
alert('5'-'3'); //2 number
3.結果是:
var bool = !!2; alert(bool);//true;
**
技巧:雙向非操作可以把字符串和數(shù)字轉換為布爾值。
**
4.如何在HTML中添加事件,幾種方法?
1、標簽之中直接添加 onclick="fun()";
2、JS添加 Eobj.onclick = method;
3、現(xiàn)代事件 IE9以前: obj.attachEvent('onclick', method);
標準瀏覽器: obj.addEventListener('click', method, false);
5.BOM對象有哪些,列舉window對象?
1、window對象 ,是JS的最頂層對象,其他的BOM對象都是window對象的屬性;
2、document對象,文檔對象;
Window對象的屬性:
3、location對象,瀏覽器當前URL信息;
4、navigator對象,瀏覽器本身信息;
5、screen對象,客戶端屏幕信息;
6、history對象,瀏覽器訪問歷史信息;
6.bind(), live(), delegate()的區(qū)別
(1)bind: 綁定事件,對新添加的事件不起作用,方法用于將一個處理程序附加到每個匹配元素的事件上并返回jQuery對象。
(2)live: 方法將一個事件處理程序附加到與當前選擇器匹配的所有元素(包含現(xiàn)有的或將來添加的)的指定事件上并返回jQuery對象。
(3)delegate: 方法基于一組特定的根元素將處理程序附加到匹配選擇器的所有元素(現(xiàn)有的或將來的)的一個或多個事件上。
最佳實現(xiàn):on() off()
7.看下列代碼輸出什么?
var foo = "11"+2-"1";
console.log(foo);
console.log(typeof foo);
執(zhí)行完后foo的值為111,foo的類型為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ù)過于臃腫:單一職責原則
(4)適當?shù)淖⑨專绕涫且恍碗s的業(yè)務邏輯或者是計算邏輯,都應該寫出這個業(yè)務邏輯的具體過程
(5)內存管理,尤其是閉包中的變量釋放
10.簡述readyonly與disabled的區(qū)別
(1)readonly只針對input(text / password)和textarea有效,
(2)disabled對于所有的表單元素都有效,當表單元素在使用了disabled后,當我們將表單以POST或GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去