操作(operation)
算術(shù)操作符
加減乘除都是算術(shù)操作,賦值用 = 號
為了避免歧義馋评,用括號把不同操作分割 1+(4/5)
變量也可包含操作:
var total = (1+4)/5
還可以對變量進行操作:
var mclty = 95;
var mclsy = (mclty-33)/1.5;
js提供有用的操作符號诗芜,作為各種常用操作的縮寫瞳抓,例如想給一個數(shù)值變量+1埃疫,可以:
var year = year+1;
可以用year++
達到同樣的目的。
類似的孩哑,year--
可以做-1的操作
加號是一個特殊的操作符栓霜,既可以用作數(shù)值,也可以用作字符串:
var message = "I am feeling" + "happy";
這樣把多個字符串收尾相接的操作叫做拼接横蜒。也可以通過變量來完成:
var mood = =happy;
var message = "I am feeling" + mood;
甚至可以把數(shù)值和字符串拼接在一起胳蛮。因為js是弱類型語言,所以操作是允許的丛晌,此時數(shù)據(jù)值會自動轉(zhuǎn)化為字符串:
var year = 2005;
var message = "The year is" + year;
如果把字符串和數(shù)值拼在一起仅炊,結(jié)果是字符串,但拼接兩個數(shù)值澎蛛,結(jié)果是和抚垄。
區(qū)別以下兩個語句:
alert ("10" + 20); //1020
alert (10+20); //30
另一個快捷操作符是+=,可以完成“加法和賦值”(或者“拼接和賦值”):
var year = 2010;
var message = "The year is";
message += year;
alert(message) //The year is 2010
條件語句
腳本可以根據(jù)人們給出的各種條件做出決策谋逻。js使用條件語句來做判斷(conditional statement)
解釋腳本時呆馁,瀏覽器將依次執(zhí)行腳本中各條語句,可以在腳本中用條件語句設(shè)置一個條件毁兆,只有滿足這個條件才能讓語句得到執(zhí)行浙滤。最常見的是if語句。
if (condition){
statements
}
條件必須放在if后的圓括號中气堕。條件的求值結(jié)果永遠是一個布爾值瓷叫。花括號中的語句只有在條件的求值結(jié)果為true的情況下才會被執(zhí)行送巡。
if (1>2){
alert("bad world");
}else{
alert("good world");
}
比較操作符
js還提供許多幾乎只能在條件語句里的操作符摹菠,包括">" "<" ">=" "<="
如果比較兩個值是否相等,可以使用“等于”操作符骗爆,由兩個等號構(gòu)成次氨,因為單個的等號是用于完成賦值
相等操作符==并不表示嚴格的相等,例如比較false和一個空字符串摘投,得到的結(jié)果是true煮寡。因為相等操作符號認為空字符和false含義相同。要進行嚴格比較犀呼,使用另外一種等號===幸撕,不僅比較值,而且比較變量的類型外臂。
js還提供一個用來進行“不等于”的操作符坐儿, 由一個感嘆號和一個等號構(gòu)成 !=
嚴格不等的操作符 使用!==
邏輯操作符
如果想檢查某個變量,不妨假設(shè)變量為num貌矿,它的值是不是在5~10之間炭菌,需要進行兩次比較操作,是否大于等于5逛漫,然后是否小于等于10黑低,兩次比較操作成為邏輯比較:
if (num >=5 && num <=10){
alert("the number is in the right range.")
這里使用了“邏輯與”操作符,由兩個&&組成酌毡,是一個邏輯操作符克握。邏輯操作符的操作對象是布爾值,每個邏輯操作返回一個布爾值true或false枷踏,“邏輯與”只有在兩個操作數(shù)都是true時才會true菩暗。
“邏輯或”操作符由兩個垂直字符線構(gòu)成 ||,只要操作數(shù)中有一個是true呕寝,“邏輯或”就是true勋眯。兩個false才會是false。
js提供一個“邏輯非”的操作符下梢,有一個感嘆號構(gòu)成 客蹋!,作用于單個邏輯操作數(shù)孽江,其結(jié)果是把那個邏輯操作數(shù)返回的布爾值取反:
if ( ! ( 1 > 2 ) ); {
alert("all is well");
}`
為避免產(chǎn)生歧義讶坯,把邏輯操作數(shù)放在了括號里。(1>2)
可以用“邏輯非”把整個條件語句的結(jié)果顛倒過來:
if(!(num>10 || num<5)){
alert("the number is in the right range.");
}