JavaScript語句向瀏覽器發出命令。語句的作用是告訴瀏覽器該做什麼其中分號,語句之間的分割是分號,注意:分號是可選項,有時候看到不以分號隔開的。
JavaScript是按照編程順序執行的
JavaScript標識符必須以字母、下劃線或美元符號開始
JavaScript的關鍵字是不能使用的
JavaScript對大小寫非常敏感
JavaScript會忽略多個空格的情況
JavaScript的變量:
變量是存儲信息的「容器」如:var x=10;
數據類型
string、number、boolean、array、object、null和未定義
可以通過賦值為null的方式清除變量
var string=「fdjkaf」
var flag=true;
var arr=;
var arr=new Array;
運算符號:
算數:+,-,*,%,/++,--
賦值運算符:=,+=,-=,*=,/=,%=
字符串操作
比較運算符:==,===(必須滿足類型是相同的),!=,!==(必須滿足類型是不相同的),>,<,>=,<=
邏輯運算符:&&、||、!
條件運算符:a與b的關係 ? 條件1 : 條件2;
例子->
<p>i=100,j=10;i+j=?</p>
<p id="sumid"></p>
<button onclick="mysum">結果</button>
<script>
function mysum{
var i=100;
var j=10;
var m=i+j
document.getElementById("sumid").innerHTML=m;
}
</script>
條件語句if...else和switch和C語言一樣,其中switch語句不要忘了寫break;來進行判斷中斷
for循環:
for(var i=0;i<7;i++){
}
還有其他形式:
var i=[1,2,3,4,5,6];
var j;
for(j in i){
遍歷i中的元素
}
while和do...while循環和C語言一樣,跳轉語句:break、continue、return,JavaScript的函數部分與C也一樣
JavaScript的異常捕獲:
try{
異常代碼塊
}catch(err){
對異常的處理
}
throw可以創建自定義的錯誤,通過throw直接拋出異常,不用catch處理
JavaScript的事件監聽:
onClick單擊事件
onMouseOver滑鼠經過事件
onMouseOut滑鼠移出事件
onChange文本內容改變事件
onSelect文本框選中事件
onFocus光標聚集事件
onBlur移開光標
onLoad網頁加載事件
onUnload關閉網頁事件
JavaScript DOM對象
HTML DOM:當網頁被加載時,瀏覽器會創建頁面的文檔對象模型(Document Object Model)
DOM操作HTML:
改變頁面中所有的HTML元素、屬性、CSS樣式和頁面中的所有事件作出反應->改變HTML輸出流:絕對不要在文檔加載完成之後使用document.write.這會覆蓋前面書寫的文檔
尋找元素:可以通過id找到HTML元素,或者通過標籤名找到HTML元素
改變HTML內容:使用屬性->innerHTML
改變HTML屬性:使用屬性attribute->document.getelementbyid.屬性 = 新的屬性
DOM EventListener:
方法->
addEventListener;指定元素添加事件句柄
removeEventListener;移出方法添加的事件句柄
事件冒泡->由最具體的元素接收,然後逐級向上傳播至最不具體的元素的節點(文檔)
事件的捕獲->最不具體的節點先接收事件,而最具體的節點應該是最後接收事件
事件處理:
HTML事件處理->直接添加到HTML結構中
DOM0級事件處理->把一個函數賦值給一個事件處理程序屬性
DOM2級事件處理->addEventListener(「事件名」,「事件處理函數」,「布爾值」);
其中布爾值的取值有著不同的含義:true事件捕獲,false事件冒泡
removerEventListener;則是一處事件的監聽
如果是IE瀏覽器,則IE事件處理程序:attachEvent detachEvent
事件對象:在出發DOM事件的時候都會產生一個對象
事件對象event(常用)屬性及常用方法
1、type獲取事件類型
2、target獲取事件目標
3、stopProgragation阻止事件冒泡
4、preventDefault阻止事件默認行為
JavaScript對象:
JavaScript中的所有事物都是對象:字符串,數值,數組,函數等等
每個對象帶有屬性和方法,JavaScript允許自定義對象
自定義對象->
1定義並創建對象實例
2使用函數來定義對象,然後創建新的對象實例
e.g.1
people = new Object;
people.name = "";
people.age ="";
e.g.2
people = { name:""; age:"";};
e.g.3
function people(name,age){
this.name = name;
this.age = age;
}
temp = new people("xxx",30);
JavaScript的字符串對象,有很多對字符串操作的方法:如:length,indexOf,match,repelace("原來參數","要修改的內容")
大小寫轉換toUpperCase,toLowerCase
字符串轉換為數組
e.g.
var str2 = "hello,shuai,ge";
var s = str2.split(",");//將str2通過逗號將其分割成為數組
Date對象:日期對象用於處理日期和時間
獲得當日的日期
Array對象也有很多的方法:contact合併數組
sort排序 push末尾追加元素 reverse數組元素翻轉
a.sort默認升序排序
a.sort(function(a,b){
return a-b;//升序排列
})
return b-a;//降序排列
})
Math對象abs,round,max,min
DOM對象控制HTML
常用方法->
getElementById
getElementByName獲取name
getElementByTagName獲取元素
**(byName和ByTagName獲取的是一個相同名稱標籤的一個數組集合)
getAttribute獲取元素屬性
setAttribute設置元素屬性
childNodes訪問子節點
parentNode訪問父節點
createElement創建元素節點
createTextNode創建文本節點
insertBefore插入節點
removeChild刪除節點
offsetHeight網頁尺寸不包含滾動條,其次除了高度還有寬度的相應的設置
scrollHeight網頁尺寸
例子
1.動態的插入元素
function addElement{
var body = document.body;
var input = document.createElement("input");
input.type = "button";
input.value = "按鈕";
body.appendChild(input);
}
2.獲取網頁的尺寸
var w = document.body.offsetWidth||
document.documentElementWidth;
3.創建節點與插入節點
fuction insertNode{
var div = document.getElementById("div");
var node = document.getElementById("pid");
var newnode = document.createElement("p");
newnode.innerHTML = "動態創建一個P元素";
div.insertBefore(newnode,node);
}
JavaScript的瀏覽器對象:
window對象是BOM的核心,window對象指當前的瀏覽器窗口
所有JavaScript全局對象、函數以及變量均自動成為window對象的成員
全局變量是window對象的屬性
全局函數是window對象的方法
甚至HTML DOM的document也是window對象的屬性之一
window對象尺寸->window.innerHeight瀏覽器的內部高度/寬度,innerWidth
window方法open,close打開/關閉窗口
JS瀏覽對象-計時器
計時事件->通過使用JavaScript,可以在一個設定的時間間隔之後來執行代碼,而不是在函數被調用之後立即執行,這個稱之為計時事件。
計時的方法->
setInterval間隔指定的毫秒數不停地執行指定的代碼
clearInterval方法用於停止上述的方法
e.g.
var mytime = setInterval(function{
time;
},delay的時間毫秒級)
function time{
var d = new Date;
var t = d.toLocalTimeString;
document.getElementById("ptime").innerHTML = t
}
JS瀏覽器對象-History對象
window.history對象包含瀏覽器的歷史url的集合
Histroy方法
back與在瀏覽器點擊後退按鈕相同
forward與在瀏覽器中點擊按鈕向前相同
go進入歷史中的某個頁面
Location對象
window.location對象用於獲取當前頁面的地址url,並把瀏覽器重定向到新的頁面
Location對象的屬性
location->
hostname返回web主機的域名
pathname返回當前頁面的路徑和文件名
port返回web主機的埠
protocol返回所使用的web協議
href屬性返回當前頁面的url
assign方法加載新的文檔
Screen對象->
window.screen對象包含有關用戶屏幕的信息
screen.availWidth可用的屏幕寬度
screen.availHeight可用的屏幕高度
screen.Height屏幕高度
screen.Width屏幕寬度
通過以上的屬性可以進行很好的屏幕適配的工作
詳解JS的面向對象
e.g.
如何創建類-》
function People{
}
People.prototype.say = fucntion{
}
如何繼承-》
fucntion Student{}
Student.prototype = new People;
JS類的封裝
(fucntion{
fucntiuon People{
}
window.People = People;//這樣外界通過window的頂
層來訪問到People對象
})
function Person{
var _this = {};
_this.say = fucntion{
alert("nihao");
}
return _this;
}
上述代碼的含義:通過方法Person,在其內部首先創建了一個空的_this對象,然後通過fucntion的來定義其對象中的一個方法,最後將創建好的_this對象返回,這樣一個對象就創建好了。