什么是表達式和語句
- 表達式:是由運算元和運算符(可選)構(gòu)成,并產(chǎn)生運算結(jié)果的語法結(jié)構(gòu)。例如:
1+2 // 表達式的值為3蚁趁;
add(1,2) //表達式的值是函數(shù)的返回值
console.log //表達式的值為函數(shù)本身
- 語句:JavaScript代碼由語句構(gòu)成,表明了執(zhí)行過程的流程实胸、限定和約定他嫡,形式上可以是單行語句,也可以是由大括號括起來的復(fù)合語句庐完。語句由分號來分隔钢属。語句是“使某事發(fā)生”的指令,不存在返回值一說门躯。比如
var a = 1 + 3
就是一行賦值語句淆党。
區(qū)別
- 語句主要為了進行某種操作,一般情況下不需要返回值
- 表達式則是為了得到返回值讶凉,一定會返回一個值
- 凡是 JavaScript 語言中預(yù)期為值的地方染乌,都可以使用表達式。比如懂讯,賦值語句的等號右邊慕匠,預(yù)期是一個值,因此可以放置各種表達式域醇。
標(biāo)識符的規(guī)則
在應(yīng)用程序中,使用變量來作為值的符號名。變量的名字又叫做標(biāo)識符譬挚,其需要遵守一定的規(guī)則锅铅。
- 必須以字母、下劃線(_)或者美元符號($)開頭
- 后續(xù)的字符也可以是數(shù)字(0-9)减宣。
- 因為 JavaScript 語言是區(qū)分大小寫的盐须,所以字母可以是從“A”到“Z”的大寫字母和從“a”到“z”的小寫字母。
- 可以使用大部分 ISO 8859-1 或 Unicode 編碼的字符作標(biāo)識符漆腌,例如 ? 和 ü贼邓。你也可以使用 Unicode 轉(zhuǎn)義字符 作標(biāo)識符。
合法的標(biāo)識符示例:Number_hits闷尿,temp99塑径,$credit 和 _name。
if else 語句
if
結(jié)構(gòu)先判斷括號里表達式的布爾值填具,然后根據(jù)布爾值的真?zhèn)瓮骋ǎ瑘?zhí)行不同的語句。所謂布爾值劳景,指的是 JavaScript 的兩個特殊值誉简,true
表示真,false
表示偽盟广。
if (表達式) {
語句 // 滿足條件時闷串,執(zhí)行的語句
} else{
語句 // 不滿足條件時,執(zhí)行的語句
}
短路邏輯
A && B && C && D
取第一個假值或D
A || B || C || D
取第一個真值或D
問號冒號表達式
表達式1 ? 表達式2 : 表達式3 比如a>b ? a : b
這個代碼的意思為:
if ( a > b ) {
a
}else{
b
}
循環(huán)語句
while 循環(huán)
While
語句包括一個循環(huán)條件和一段代碼塊筋量,只要條件為真烹吵,就不斷循環(huán)執(zhí)行代碼塊。例如:
var i = 0;
while (i < 100) { //條件
console.log('i 當(dāng)前為:' + i); //語句
i = i + 1;
}
for 循環(huán)
for
語句是循環(huán)命令的另一種形式毛甲,可以指定循環(huán)的起點年叮、終點和終止條件。格式如下玻募。
var x = 3;
for (var i = 0; i < x; i++) {
console.log(i);
}
// 輸出結(jié)果
// 0
// 1
// 2
for語句后面的括號里面只损,有三個表達式。
- 初始化表達式:確定循環(huán)變量的初始值七咧,只在循環(huán)開始時執(zhí)行一次跃惫。
- 條件表達式:每輪循環(huán)開始時,都要執(zhí)行這個條件表達式艾栋,只有值為真爆存,才繼續(xù)進行循環(huán)。
- 遞增表達式:每輪循環(huán)的最后一個操作蝗砾,通常用來遞增循環(huán)變量先较。
for
循環(huán)執(zhí)行順序是携冤,先執(zhí)行初始化表達式(只執(zhí)行一次)> 條件表達式 > 語句 > 遞增表達式 > 條件表達式...
break continue
break
語句和continue
語句都具有跳轉(zhuǎn)作用,可以讓代碼不按既有的順序執(zhí)行闲勺。
break
語句用于跳出代碼塊或循環(huán)曾棕。 例如:
var i = 0;
while(i < 10) {
console.log('i 當(dāng)前為:' + i);
i++;
if (i === 5) break; // i等于5,跳出循環(huán)菜循。
}
continue
語句用于立即終止本輪循環(huán)翘地,返回循環(huán)結(jié)構(gòu)的頭部,開始下一輪循環(huán)癌幕。
var i = 0;
while (i < 10){
i++;
if (i % 2 === 0) continue; // 如果i為偶數(shù)衙耕,則跳過本輪,直接進入下一輪循環(huán)勺远。
console.log('i 當(dāng)前為:' + i`);`
}
label
語句的前面有標(biāo)簽(label)橙喘,相當(dāng)于定位符,用于跳轉(zhuǎn)到程序的任意位置谚中,標(biāo)簽的格式如下渴杆。
label: {
var a = 1
}
標(biāo)簽可以是任意的標(biāo)識符,但不能是保留字宪塔,語句部分可以是任意語句磁奖。標(biāo)簽與break語句和continue語句配合使用,可以跳出特定的循環(huán)某筐。