if條件判斷
if...else 條件判斷的語法如下:
if (條件)
{
當(dāng)條件為 true 時執(zhí)行的代碼
}
else
{
當(dāng)條件不為 true 時執(zhí)行的代碼
}
而在if條件中是6種由數(shù)據(jù)類型(ES6 新增了第七種 Symbol 類型的值)數(shù)值稍计、字符串旭从、布爾值萧落、對象妹卿、undefined和null以及其中出現(xiàn)的運算符組成,根據(jù)運算規(guī)則對條件進(jìn)行運算倾鲫,但是最終的運算結(jié)果需要轉(zhuǎn)換成布爾值假消,然后再進(jìn)行判斷TRUE還是FALSE捷犹,再執(zhí)行代碼。所以關(guān)鍵的就是了解這6種數(shù)據(jù)類型是怎么轉(zhuǎn)化為布爾值的澜公,以及運算符的優(yōu)先級和運算規(guī)則姆另。
我們可以記住一些常用的規(guī)則以便幫助我們進(jìn)行判斷:
在JavaScript中,If 語句判斷為false的變量值為:
false, 0, 0.0, null, undefined
其他變量值判斷為true:
true, 1, [任何字串/數(shù)字]
取反運算符(!)坟乾,用于將布爾值變?yōu)橄喾粗导7磘rue變成false,false變成true糊渊。
且運算符(&&)的運算規(guī)則是:如果第一個運算子的布爾值為true右核,則返回第二個運算子的值(注意是值,不是布爾值)渺绒;如果第一個運算子的布爾值為false贺喝,則直接返回第一個運算子的值,且不再對第二個運算子求值宗兼。
或運算符(||)的運算規(guī)則是:如果第一個運算子的布爾值為true躏鱼,則返回第一個運算子的值,且不再對第二個運算子求值殷绍;如果第一個運算子的布爾值為false染苛,則返回第二個運算子的值。
除此之外還有很多運算符及其規(guī)則,在編程的過程中如果忘記了茶行,應(yīng)該及時去查閱相應(yīng)的文檔躯概。
變量相等的判斷
在javascript判斷兩個變量值是否相等,可以使用==(相等)操作符 或者===(絕對相等)操作符
== 操作符
“相等”操作符畔师,簡單判斷2個變量值是否相等娶靡,變量類型不一致時,會做類型轉(zhuǎn)換看锉,即忽略變量的類型進(jìn)行比較
例子1
var str1 = "666" ; // 字符串
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true姿锭,即相等
例子2
var str1 = 666 ;? // 整型
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true,即相等
差別:
在例子1中伯铣,2個變量都是字符串類型(因為有引號)呻此,所以比較相等,打印出true腔寡;
在例子2中焚鲜,變量str1是整型,但是在做==比較時放前,javascript 發(fā)現(xiàn) 2個變量類型不一致恃泪,先做了類型轉(zhuǎn)換(調(diào)用str1的toString方法,把str1轉(zhuǎn)成字段串)犀斋,再比較2者,因此值也相等情连,打印出true叽粹;
=== 操作符
“絕對相等”操作符,先比較2個變量類型是否一致却舀,不一致返回false虫几,一致時,再比較2個變量的值是否相等
例子1
var str1 = "666" ; // 字符串
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 true挽拔,即相等
例子2
var str1 = 666 ;? // 整型
var str2 = "666" ; // 字符串
alert(str1==str2) ; // 打印出 false辆脸,即不相等
差別:
在例子1中,2個變量都是字符串類型螃诅,且值都相等啡氢,因此打印出true;
在例子2中术裸,變量1是整型倘是,變量2是字符串,類型不相等袭艺,因此打印出false ;