即流控制語(yǔ)句:一個(gè)或多個(gè)關(guān)鍵字完成給定任務(wù)
if語(yǔ)句
if(condition){ dosomething();}else { dosomething()}condition可以使任何表達(dá)式,如果不是布爾值,會(huì)自動(dòng)調(diào)用Boolean()轉(zhuǎn)換為布爾值 始終使用代碼塊(花括號(hào))
do-while語(yǔ)句 后測(cè)試循環(huán)語(yǔ)句,至少執(zhí)行一次
while語(yǔ)句 前測(cè)試循環(huán)語(yǔ)句,先對(duì)出口條件求值
for語(yǔ)句
for(初始化表達(dá)式;控制表達(dá)式;循環(huán)后表達(dá)式){}上面三個(gè)表達(dá)式都是可選的 前測(cè)試循環(huán)語(yǔ)句,但是具有執(zhí)行循環(huán)之前初始化變量(var i = 0)和定義循環(huán)后要執(zhí)行的代碼能力(i++);終止條件:i<10; while循環(huán)做不到的for循環(huán)同樣做不到;for循環(huán)變量初始化可以在外部執(zhí)行,與在for循環(huán)中聲明的效果是一樣的(變量提升,由于ECMAScript中不存在塊級(jí)作用域,循環(huán)內(nèi)部定義的變量也可以在外部訪問(wèn)到)
for-in語(yǔ)句 枚舉對(duì)象的屬性,一種精準(zhǔn)的迭代語(yǔ)句
for(PRoperty in expression){ statement}沒(méi)有順序,因此屬性名的順序是不可預(yù)測(cè)的;如果要迭代對(duì)象的變量值為null或undefined,for-in語(yǔ)句會(huì)拋出錯(cuò)誤,ECMAScript5更正了這一行為,不在拋出錯(cuò)誤,而只是不執(zhí)行循環(huán)體。為了保證兼容性,建議使用for-in循環(huán)之前,先檢測(cè)確認(rèn)該對(duì)象的值不是null或undefinedlabel語(yǔ)句
start:for(){ }將來(lái)有break或continue語(yǔ)句引用
break和continue語(yǔ)句 循環(huán)中精確地控制代碼的執(zhí)行。break立即退出循環(huán),而continue語(yǔ)句雖然立即退出當(dāng)次循環(huán),從循環(huán)頂部繼續(xù)執(zhí)行; 而break outemost;帶了一個(gè)參數(shù),要返回到的標(biāo)簽:用于多個(gè)循環(huán)嵌套的情況,能一次退出多個(gè)循環(huán),否則,只能退出一個(gè)循環(huán);
with語(yǔ)句 簡(jiǎn)化多次編寫同一個(gè)對(duì)象的工作,但是后面的高版本不支持了
with(location)statement在with語(yǔ)句的代碼塊內(nèi)部,每個(gè)變量被認(rèn)為是一個(gè)局部變量,而如果在局部變量中找不到該變量的定義,就會(huì)查詢location對(duì)象中是否有同名屬性,如果發(fā)現(xiàn)了同名屬性,則以location對(duì)象屬性的值作為變量的值; 嚴(yán)格模式下不允許使用with語(yǔ)句,開發(fā)大型應(yīng)用時(shí),不建議使用with
switch 語(yǔ)句 每個(gè)case后面都添加一個(gè)break語(yǔ)句,避免同時(shí)執(zhí)行多個(gè)case代碼的情況;假如確實(shí)需要混合集中情況,不要忘了在代碼中添加注釋,說(shuō)明有意省略了break關(guān)鍵字 switch 可以使用任何數(shù)據(jù)類型,字符串、對(duì)象都沒(méi)有問(wèn)題。switch語(yǔ)句在比較值時(shí)使用的是全等操作符,不會(huì)發(fā)生類型轉(zhuǎn)換。
ECMAScript中的函數(shù)使用function關(guān)鍵字來(lái)聲明
function functionName (arg0,arg1,...,argN){ statements}函數(shù)調(diào)用 :函數(shù)名+圓括號(hào)和參數(shù)(多個(gè)用逗號(hào)隔開); 可以通過(guò)return語(yǔ)句返回要返回的值;return語(yǔ)句后的任何代碼都不會(huì)執(zhí)行 函數(shù)要么始終返回一個(gè)值,要么永遠(yuǎn)都不要返回值; eval arguments 不要作為函數(shù)和參數(shù)名,不要出現(xiàn)同名參數(shù);
理解參數(shù) ECMAScript 中的參數(shù)在內(nèi)部使用數(shù)組表示的,不關(guān)心數(shù)組中包含哪些參數(shù),函數(shù)內(nèi)部可以通過(guò)arguments對(duì)象來(lái)訪問(wèn)函數(shù)數(shù)組,從而獲得傳遞給函數(shù)的每個(gè)參數(shù) arguments只是與數(shù)組類似,并不是Array的實(shí)例,可以用方括號(hào)訪問(wèn)它的每個(gè)元素,arguments[0],length屬性可以用來(lái)確定傳遞進(jìn)來(lái)多少參數(shù) arguments,它的值永遠(yuǎn)與對(duì)應(yīng)命名參數(shù)的值保持同步;arguments和命名參數(shù)的內(nèi)存空間是獨(dú)立的,但是他們的值會(huì)同步,但是這種影響是單向的:修改命名參數(shù)不會(huì)改變arguments中的對(duì)應(yīng)值,但是修改arguments中的值會(huì)改變命名參數(shù)的值(函數(shù)內(nèi)部的值變化);沒(méi)有傳遞值的命名參數(shù)將自動(dòng)服務(wù)undefined(定義了變量但是沒(méi)有初始化);嚴(yán)格模式對(duì)arguments進(jìn)行了限制:arguments的值設(shè)置不會(huì)改變命名參數(shù),并且重寫arguments的值會(huì)導(dǎo)致語(yǔ)法錯(cuò)誤 ECMAScript中的所有參數(shù)傳遞的都是值,不可能通過(guò)引用傳遞參數(shù)。
沒(méi)有重載 同名函數(shù)會(huì)覆蓋前面的
未指定返回值的函數(shù)返回的是一個(gè)特殊undefined值 由于不存在函數(shù)簽名的特性,ECMAScript函數(shù)不能重載
新聞熱點(diǎn)
疑難解答
圖片精選