JavaScript 語(yǔ)法
JavaScript 語(yǔ)法
JavaScript 是一個(gè)腳本語(yǔ)言。
它是一個(gè)輕量級(jí),但功能強(qiáng)大的編程語(yǔ)言。
運(yùn)算符
運(yùn)算符就是完成操作的一系列符號(hào),它有七類:
賦值運(yùn)算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、
算術(shù)運(yùn)算符(+,-,*,/,++,--,%)、
比較運(yùn)算符(>,<,<=,>=,==,===,!=,!==)、
邏輯運(yùn)算符(||,&&,!)、
條件運(yùn)算(?:)、
位移運(yùn)算符(|,&,<<,>>,~,^)和字符串運(yùn)算符(+)。
表達(dá)式
運(yùn)算符和操作數(shù)的組合稱為表達(dá)式,通常分為四類:賦值表達(dá)式、算術(shù)表達(dá)式、布爾表達(dá)式和字符串表達(dá)式。
語(yǔ)句
Javascript程序是由若干語(yǔ)句組成的,語(yǔ)句是編寫程序的指令。Javascript提供了完整的基本編程語(yǔ)句,它們是:
賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for循環(huán)語(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)是可以在任意處調(diào)用的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用。
3)函數(shù)名是調(diào)用函數(shù)時(shí)引用的名稱,它對(duì)大小寫是敏感的,調(diào)用函數(shù)時(shí)不可寫錯(cuò)函數(shù)名。
4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過(guò)arguments對(duì)象(arguments對(duì)象是一個(gè)偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問(wèn)所有參數(shù)。
5)return語(yǔ)句用于返回表達(dá)式的值。
6)yield語(yǔ)句扔出一個(gè)表達(dá)式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。
一般的函數(shù)都是以下格式:
var myFunction=function(params){
//執(zhí)行的語(yǔ)句
}
var myFunction = function(){
//執(zhí)行的語(yǔ)句
}
關(guān)鍵詞
JavaScript 語(yǔ)句通常于關(guān)鍵詞為開(kāi)頭。?var?關(guān)鍵詞告訴瀏覽器創(chuàng)建一個(gè)新的變量:
var x = 5 + 6;
var y = x * 10;
關(guān)鍵字
和其他任何編程語(yǔ)言一樣,JavaScript 保留了一些關(guān)鍵字為自己所用。
JavaScript 同樣保留了一些關(guān)鍵字,這些關(guān)鍵字在當(dāng)前的語(yǔ)言版本中并沒(méi)有使用,但在以后 JavaScript 擴(kuò)展中會(huì)用到。
JavaScript 關(guān)鍵字必須以字母、下劃線(_)或美元符($)開(kāi)始。
后續(xù)的字符可以是字母、數(shù)字、下劃線或美元符(數(shù)字是不允許作為首字符出現(xiàn)的,以便 JavaScript 可以輕易區(qū)分開(kāi)關(guān)鍵字和數(shù)字)。
對(duì)象
Javascript的一個(gè)重要功能就是面向?qū)ο蟮墓δ?,通過(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開(kāi)發(fā)。
一組包含數(shù)據(jù)的屬性和對(duì)屬性中包含數(shù)據(jù)進(jìn)行操作的方法,稱為對(duì)象。比如要設(shè)定網(wǎng)頁(yè)的背景顏色,所針對(duì)的對(duì)象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍(lán)色。
事件
用戶與網(wǎng)頁(yè)交互時(shí)產(chǎn)生的操作,稱為事件。事件可以由用戶引發(fā),也可能是頁(yè)面發(fā)生改變,甚至還有你看不見(jiàn)的事件(如Ajax的交互進(jìn)度改變)。絕大部分事件都由用戶的動(dòng)作所引發(fā),如:用戶按鼠標(biāo)的按鍵,就產(chǎn)生click事件,若鼠標(biāo)的指針在鏈接上移動(dòng),就產(chǎn)生mouseover事件等等。在Javascript中,事件往往與事件處理程序配套使用。
而對(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中事件還分捕獲和冒泡兩個(gè)階段,但是傳統(tǒng)綁定只支持冒泡事件。
變量
如 var myVariable = "some value";
變量有它的類型,上例中myVariable的類型為string(字符串)
javascript支持的常用類型還有:
object:對(duì)象
array:數(shù)組
number:數(shù)字
boolean:布爾值,只有true和false兩個(gè)值,是所有類型中占用內(nèi)存最少的
null:一個(gè)空值,唯一的值是null
undefined:沒(méi)有定義和賦值的變量
實(shí)際上javascript的變量是弱變量類型,你賦值給他的是字符串,他就是String .
是數(shù)字他就是整形。是true和false他就是boolean型(注意,不能加引號(hào),不然會(huì)被當(dāng)成字符串處理)。
對(duì)大小寫敏感
JavaScript 對(duì)大小寫是敏感的。
當(dāng)編寫 JavaScript 語(yǔ)句時(shí),請(qǐng)留意是否關(guān)閉大小寫切換鍵。
函數(shù)?getElementById?與?getElementbyID?是不同的。
同樣,變量?myVariable?與?MyVariable?也是不同的。