JavaScript 語(yǔ)法
JavaScript 語(yǔ)法
JavaScript 是一個(gè)腳本語(yǔ)言。
它是一個(gè)輕量級(jí),但功能強(qiáng)大的程式語(yǔ)言。
運(yùn)算子
運(yùn)算子就是完成運(yùn)算的一系列符號(hào),它有七個(gè)類別:
賦值運(yùn)算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、
算術(shù)運(yùn)算子(+,- ,*,/,++,--,%)、
比較運(yùn)算子(>,<,<=,>=,==,===,!=,!= =)、
邏輯運(yùn)算子(||,&&,!)、
條件運(yùn)算(?:)、
位移運(yùn)算子(|,&,< <,>>,~,^)和字串運(yùn)算子(+)。
表達(dá)式
運(yùn)算子和運(yùn)算子的組合稱為表達(dá)式,通常分為四類:賦值表達(dá)式、算術(shù)表達(dá)式式、布林表達(dá)式和字串表達(dá)式。
語(yǔ)句
Javascript程式是由若干語(yǔ)句組成的,語(yǔ)句是寫(xiě)程式的指令。 Javascript提供了完整的基本程式語(yǔ)句,它們是:
賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for迴圈語(yǔ)句、for each循環(huán)語(yǔ)句、do while循環(huán)語(yǔ)句、break循環(huán)中止語(yǔ)句、continue循環(huán)中斷語(yǔ)句、 with語(yǔ)句、try...catch語(yǔ)句、
if語(yǔ)句(if..else,if...else if ...)、let語(yǔ)句。
函數(shù)
函數(shù)是命名的語(yǔ)句段,這個(gè)語(yǔ)句段可以被當(dāng)作一個(gè)整體來(lái)引用和執(zhí)行。使用函數(shù)要注意以下幾點(diǎn):
1)函數(shù)由關(guān)鍵字function定義(也可由Function建構(gòu)函數(shù)建構(gòu))。
2)使用function關(guān)鍵字定義的函數(shù)在一個(gè)作用域內(nèi)是可以在任意處呼叫的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義後才能被呼叫。
3)函數(shù)名稱是呼叫函數(shù)時(shí)引用的名稱,它對(duì)大小寫(xiě)是敏感的,呼叫函數(shù)時(shí)不可寫(xiě)錯(cuò)函數(shù)名。
4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常數(shù),也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以透過(guò)arguments物件(arguments物件是一個(gè)偽數(shù)組,屬性callee引用被呼叫的函數(shù))存取所有參數(shù)。
5)return語(yǔ)句用來(lái)傳回表達(dá)式的值。
6)yield語(yǔ)句丟出一個(gè)表達(dá)式,並且中斷函數(shù)執(zhí)行直到下次呼叫next。
一般的函數(shù)都是以下格式:
var myFunction=function(params){
//執(zhí)行的語(yǔ)句
}
var myFunction = function(){
//執(zhí)行的語(yǔ)句
}
關(guān)鍵字
JavaScript 語(yǔ)句通常以關(guān)鍵字為開(kāi)頭。 var?關(guān)鍵字告訴瀏覽器建立一個(gè)新的變數(shù):
var x = 5 + 6;
var y = x * 10;
關(guān)鍵字
#和其他任何程式語(yǔ)言一樣,JavaScript 保留了一些關(guān)鍵字為自己所用。
JavaScript 同樣保留了一些關(guān)鍵字,這些關(guān)鍵字在目前的語(yǔ)言版本中並沒(méi)有使用,但以後 JavaScript 擴(kuò)充功能會(huì)用到。
JavaScript 關(guān)鍵字必須以字母、底線(_)或美元符號(hào)($)開(kāi)始。
後續(xù)的字元可以是字母、數(shù)字、底線或美元符(數(shù)字是不允許作為首字出現(xiàn)的,以便 JavaScript 可以輕易區(qū)分開(kāi)關(guān)鍵字和數(shù)字)。
物件
Javascript的一個(gè)重要功能就是物件導(dǎo)向的功能,透過(guò)基於物件的程式設(shè)計(jì),可以用更直覺(jué)、模組化和可重複使用的方式進(jìn)行程式開(kāi)發(fā)。
一組包含資料的屬性和對(duì)屬性中包含資料進(jìn)行操作的方法,稱為物件。例如要設(shè)定網(wǎng)頁(yè)的背景顏色,所針對(duì)的物件就是document,所用的屬性名稱是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍(lán)色。
##########
使用者與網(wǎng)頁(yè)互動(dòng)時(shí)所產(chǎn)生的操作,稱為事件。事件可以由使用者引發(fā),也可能是頁(yè)面發(fā)生改變,甚至還有你看不見(jiàn)的事件(如Ajax的互動(dòng)進(jìn)度改變)。絕大部分事件都由使用者的動(dòng)作所引發(fā),如:使用者按滑鼠的按鍵,就產(chǎn)生click事件,若滑鼠的指標(biāo)在連結(jié)上移動(dòng),就產(chǎn)生mouseover事件等等。在Javascript中,事件往往與事件處理程序配對(duì)使用。
而對(duì)事件的處理,W3C的方法是用addEventListener()函數(shù),它有三個(gè)參數(shù):事件,引發(fā)的函數(shù),是否使用事件捕捉。為了安全性,建議將第三個(gè)參數(shù)總是設(shè)定為false;
傳統(tǒng)的方法就是定義元素的on...事件,它就是W3C的方法中的事件參數(shù)前加一個(gè)「on」。而IE的事件模型使用attachEvent和dettachEvent對(duì)事件進(jìn)行綁定和刪除。 javascript中事件也分開(kāi)捕捉和冒泡兩個(gè)階段,但傳統(tǒng)綁定只支援冒泡事件。
變數(shù)
#如var myVariable = "some value";
變數(shù)有它的型別,上例中myVariable的型別為string(字串)
javascript支援的常用型別還有:
object :物件
array:陣列
number:數(shù)字
boolean:布林值,只有true和false兩個(gè)值,是所有類型中佔(zhàn)用記憶體最少的
null:一個(gè)空值,唯一的值是null
undefined:沒(méi)有定義和賦值的變數(shù)
實(shí)際上javascript的變數(shù)是弱變數(shù)類型,你賦值給他的是字串,他就是String .
是數(shù)字他就是整形。是true和false他就是boolean型(注意,不能加引號(hào),不然會(huì)被當(dāng)成字??串處理)。