整個(gè)javascript分為三個(gè)組成部分(ECMAScript/DOM/BOM)
一、核心部分ECMAScript
1.語法
??? ① 區(qū)分大小寫
?? ? ② 變量是弱類型?。?在定義變量的時(shí)候,如果沒有對(duì)其賦值,那么此變量是沒有具體類型的,只有賦值之后才有具體的類型。每行代碼結(jié)束后分號(hào)可有可無,建議寫上!注釋、以及代碼塊等內(nèi)與java一致。
2.變量
??????? 聲明統(tǒng)一使用關(guān)鍵字var來定義。也可以不用聲明。(如果不聲明,表示該變量是一個(gè)全局的!)
變量命名規(guī)則與java一致。不要使用關(guān)鍵字和保留字。
3.原始數(shù)據(jù)類型
???????? 總共有undefined、null(object)、number、string、boolean
4.運(yùn)算符
????????? 全等運(yùn)算符? : ==與===的區(qū)別。==會(huì)進(jìn)行一個(gè)類型轉(zhuǎn)換(嘗試著轉(zhuǎn)換),===它不會(huì)進(jìn)行類型轉(zhuǎn)換
5.語句
語句與java一致。
6.函數(shù)
??????? ?? 有名稱function 函數(shù)名稱(){}
?????????? 匿名function(){}
????????? 補(bǔ)充:整個(gè)javascript代碼建議寫到body標(biāo)簽后面(可能JS帶中獲取HTML內(nèi)容的時(shí)候,整個(gè)html還沒有加載完。)或者放到頁面加載函數(shù)里面去。
?? ? ? ?? window.onload = function(){document.getElementById("id").onclick= function(){JS代碼……}}
??? ?? ?? document.getElementById("id").onclick= function(){JS代碼……}
二、BOM對(duì)象(瀏覽器對(duì)象模型)
1.window對(duì)象:代表的是整個(gè)瀏覽器對(duì)象setInterval();clearInterval();setTimeout();clearTimeout();alert();prompt();confirm();
window對(duì)象擁有其它幾個(gè)對(duì)象的一個(gè)只讀引用!
2.location對(duì)象:url地址href屬性:實(shí)現(xiàn)頁面的跳轉(zhuǎn)功能
3.history對(duì)象:歷史記錄back():查看上一個(gè)歷史記錄forward():查看下一個(gè)歷史記錄go(有參數(shù)):可以實(shí)現(xiàn)上面兩個(gè)功能。如果參數(shù)為負(fù)整數(shù),其功能與back()一致。如果參數(shù)為正整數(shù),其功能與forward一致
4.navigator對(duì)象:整個(gè)瀏覽器信息相關(guān)的對(duì)象
5.screen對(duì)象:客戶端屏幕相關(guān)的信息
三、DOM對(duì)象
1.document對(duì)象
???????? (1) 該對(duì)象有以下常見方法:
??????????? 1_獲取元素節(jié)點(diǎn)相關(guān)的方法:
??? ? ? ? ? ① document.getElementById("id");//返回單個(gè)對(duì)象???????
??? ? ? ? ? ②document.getElementsByName("name");//返回多個(gè)對(duì)象集合,需要進(jìn)行遍歷操作????????
???????? ?? ③ document.getElementsByTagName("標(biāo)簽名稱");//返回多個(gè)對(duì)象集合,需要進(jìn)行遍歷操作
????? ?? 創(chuàng)建節(jié)點(diǎn)相關(guān)方法創(chuàng)建文本節(jié)點(diǎn) :document.createTextNode();
???????? 創(chuàng)建元素節(jié)點(diǎn):document.createElement();
2.element對(duì)象
???????? 該對(duì)象有以下常見方法:
??????? ①? element.appendChild():如果是A.appendChild(B),那么,B會(huì)追擊到A的內(nèi)部,B原來所在位置的元素會(huì)被刪除!
??????? ② ?? element.firstChild 返回元素的首個(gè)子。
??????? ③ ?? element.getAttribute() 返回元素節(jié)點(diǎn)的指定屬性值。 element.innerHTML 設(shè)置或返回元素的內(nèi)容。
????????? ④ ? element.insertBefore() 在指定的已有的子節(jié)點(diǎn)之前插入新節(jié)點(diǎn)。 element.removeChild() 從元素中移除子節(jié)點(diǎn)。
????????? ⑤? element.replaceChild() 替換元素中的子節(jié)點(diǎn)。 其它方法可以參考相關(guān)手冊(cè)!
3.attribute對(duì)象
????????????? 該對(duì)象只需要關(guān)注其中的一個(gè)屬性(attr.value 設(shè)置或返回屬性的值)即可。
其他
一、內(nèi)置對(duì)象
???????? Array/Boolean/Date/Math/Number/String/RegExp重點(diǎn)掌握數(shù)組、字符串和正則,他們?cè)陂_發(fā)中使用相對(duì)要多一些。注意:數(shù)組的創(chuàng)建,長度是可變的,長度等于最大角標(biāo)+1,里面存放的內(nèi)容的類型可以不是同一種(java里面必須是同一種)
二、事件
???? ① ? 事件除了頁面加載onload和表單提交onsubmit有點(diǎn)特殊外,其它事件都是在需要操作的元素上面添加
???? ②? 頁面加載事件只能生效一個(gè),綁定的位置在<body>標(biāo)簽上面
???? ③ ? 表單提交事件必須要有返回值,否則不論校驗(yàn)成功與否都會(huì)提交,綁定位置不在按鈕上,而在<form onsubmit="return checkForm()">