java script學習筆記
DOM對象:把body、div、p等節點樹看成一個對象。
BOM對象:把瀏覽器的地址欄、歷史記錄、DOM等裝在一個對象。
js的引入方式:1、<script>.....</script>;2、寫一個js文件(不需要script標簽),然后在需要使用的地方通過<script src="./01.js"></script>
問題:為什么把js放到最后!
答案:1、因為是按照順序渲染的.,所以先讓用戶看到內容,再進行渲染.;2、js先執行的話,如果需要getElement一個p標簽,但是p標簽還沒有呢,那渲染個毛線。
變量聲明:
JS的變量名可以用字母數字下劃線和$組成,其他要求都差不多一致。
JS的變量名是區分大小寫的。
變量名一定要加上var,不加和加var不是一回事!而且可能污染全局。
null 和 undefined:
null是對象,undefined指原生數據類型。絕大多數情況下都一樣用就行。
數組的索引就是0到n,刪除數組中某個元素,還是一樣0到N編排。
Js中拼接用+號,一旦遇到非法數字后,后面一律理解為“拼接”。比如:2+3+'請問'+2+3結果為“5請問23”
修改DOM對象的屬性就是直接obj.屬性 = xxx就行了,有個別例外的,比如一個<div class="xxx"></div>修改它的class應該是 ?divObj.className = xxx;
還有一些帶有橫線的比如border-top-style直接按照-去掉,然后-后面第一個字母大寫就行了。obj.borderTopStyle=xxx
字符串轉成數值:
獲取內存中正在渲染的style:
如果style是寫在css中的,js沒法直接獲取到它的style。這時候在js中就需要使用特定的方法去獲取對象的style。比如:獲取obj的attr屬性。currentStyle()比較老,也有可能不支持而導致語法錯誤!這里只是做個簡單的例子學習使用。可以使用?:三元運算符。
function getStyle(obj, attr) {
return ?obj.currentStyle[attr] || window.getComputedStyle(obj, null)[attr];
}
window.getComputedStyle的第二個參數傳偽類,比如hover狀態啊什么的!而且這兩個方法獲取到的都是只讀的。最終要修改的話還是要使用obj.style.xx屬性=praseInt(getStyle(style, attr)) ....;