java script學(xué)習(xí)筆記
DOM對(duì)象:把body、div凉唐、p等節(jié)點(diǎn)樹(shù)看成一個(gè)對(duì)象庸追。
BOM對(duì)象:把瀏覽器的地址欄、歷史記錄台囱、DOM等裝在一個(gè)對(duì)象淡溯。
js的引入方式:1、<script>.....</script>簿训;2咱娶、寫一個(gè)js文件(不需要script標(biāo)簽),然后在需要使用的地方通過(guò)<script src="./01.js"></script>
問(wèn)題:為什么把js放到最后煎楣!
答案:1豺总、因?yàn)槭前凑枕樞蜾秩镜?,所以先讓用戶看到內(nèi)容择懂,再進(jìn)行渲染.喻喳;2、js先執(zhí)行的話困曙,如果需要getElement一個(gè)p標(biāo)簽表伦,但是p標(biāo)簽還沒(méi)有呢,那渲染個(gè)毛線慷丽。
變量聲明:
JS的變量名可以用字母數(shù)字下劃線和$組成蹦哼,其他要求都差不多一致。
JS的變量名是區(qū)分大小寫的要糊。
變量名一定要加上var纲熏,不加和加var不是一回事!而且可能污染全局锄俄。
null 和 undefined:
null是對(duì)象局劲,undefined指原生數(shù)據(jù)類型。絕大多數(shù)情況下都一樣用就行奶赠。
數(shù)組的索引就是0到n鱼填,刪除數(shù)組中某個(gè)元素,還是一樣0到N編排毅戈。
Js中拼接用+號(hào)苹丸,一旦遇到非法數(shù)字后愤惰,后面一律理解為“拼接”。比如:2+3+'請(qǐng)問(wèn)'+2+3結(jié)果為“5請(qǐng)問(wèn)23”
修改DOM對(duì)象的屬性就是直接obj.屬性 = xxx就行了赘理,有個(gè)別例外的宦言,比如一個(gè)<div class="xxx"></div>修改它的class應(yīng)該是 ?divObj.className = xxx;
還有一些帶有橫線的比如border-top-style直接按照-去掉,然后-后面第一個(gè)字母大寫就行了感憾。obj.borderTopStyle=xxx
字符串轉(zhuǎn)成數(shù)值:
獲取內(nèi)存中正在渲染的style:
如果style是寫在css中的蜡励,js沒(méi)法直接獲取到它的style令花。這時(shí)候在js中就需要使用特定的方法去獲取對(duì)象的style阻桅。比如:獲取obj的attr屬性。currentStyle()比較老兼都,也有可能不支持而導(dǎo)致語(yǔ)法錯(cuò)誤嫂沉!這里只是做個(gè)簡(jiǎn)單的例子學(xué)習(xí)使用“绫蹋可以使用趟章?:三元運(yùn)算符。
function getStyle(obj慎王, attr) {
return ?obj.currentStyle[attr] || window.getComputedStyle(obj, null)[attr];
}
window.getComputedStyle的第二個(gè)參數(shù)傳偽類蚓土,比如hover狀態(tài)啊什么的!而且這兩個(gè)方法獲取到的都是只讀的赖淤。最終要修改的話還是要使用obj.style.xx屬性=praseInt(getStyle(style, attr)) ....蜀漆;