if條件判斷
if...else 條件判斷的語法如下:
if (條件)
{
當(dāng)條件為 true 時執(zhí)行的代碼
}
else
{
當(dāng)條件不為 true 時執(zhí)行的代碼
}
而在if條件中是6種由數(shù)據(jù)類型(ES6 新增了第七種 Symbol 類型的值)數(shù)值、字符串、布爾值、對象、undefined和null以及其中出現(xiàn)的運(yùn)算符組成,根據(jù)運(yùn)算規(guī)則對條件進(jìn)行運(yùn)算,但是最終的運(yùn)算結(jié)果需要轉(zhuǎn)換成布爾值,然后再進(jìn)行判斷TRUE還是FALSE,再執(zhí)行代碼。所以關(guān)鍵的就是了解這6種數(shù)據(jù)類型是怎么轉(zhuǎn)化為布爾值的,以及運(yùn)算符的優(yōu)先級和運(yùn)算規(guī)則。
我們可以記住一些常用的規(guī)則以便幫助我們進(jìn)行判斷:
在JavaScript中,If 語句判斷為false的變量值為:
false, 0, 0.0, null, undefined
其他變量值判斷為true:
true, 1, [任何字串/數(shù)字]
取反運(yùn)算符(!),用于將布爾值變?yōu)橄喾粗?,即true變成false,false變成true。
且運(yùn)算符(&&)的運(yùn)算規(guī)則是:如果第一個運(yùn)算子的布爾值為true,則返回第二個運(yùn)算子的值(注意是值,不是布爾值);如果第一個運(yùn)算子的布爾值為false,則直接返回第一個運(yùn)算子的值,且不再對第二個運(yùn)算子求值。
或運(yùn)算符(||)的運(yùn)算規(guī)則是:如果第一個運(yùn)算子的布爾值為true,則返回第一個運(yùn)算子的值,且不再對第二個運(yùn)算子求值;如果第一個運(yùn)算子的布爾值為false,則返回第二個運(yùn)算子的值。
除此之外還有很多運(yùn)算符及其規(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 ;