布爾值:
- 布爾值代表“真”和“假”兩個狀態(tài)?!罢妗庇藐P(guān)鍵字true表示,“假”用關(guān)鍵字false表示,布爾值只有主人兩個值;
- 下列運(yùn)算符會返回布爾值:
- 兩元運(yùn)算符:&&(and),||(or);
- 前置邏輯運(yùn)算符: !(not);
- 相等運(yùn)算符:===,!==,==,!=;
- 比較運(yùn)算符:>,>=,<,<=.
- 如果JavaScript預(yù)期某個位置應(yīng)該是布爾值,會將該位置上現(xiàn)有的值自動轉(zhuǎn)換為布爾值,轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false,其它值都視為true;
- undefined
- null
- fslse
- 0
- NaN
- ""或''(空字符串)
var c=4>3;
typeof c;
此時輸出結(jié)果為boolean;
- 需要注意都的是空數(shù)組( [ ])和控對象( { } )對應(yīng)的布爾值都是true;
If語句
- if語句是編程語言最常用的語句,語法:
if (conditon) { //true statament }else { //false statement } - 其中condition可以是任意的表達(dá)式,結(jié)果不一定是布爾值,JavaScript解釋器會自動調(diào)用boolean()將表達(dá)式結(jié)果轉(zhuǎn)為布爾值,如果表達(dá)式為真調(diào)用第一個代碼內(nèi)語句,如果為假執(zhí)行第二個代碼塊內(nèi)語句;
- 只有一條語句的時候代碼塊不是必需的,出于維護(hù)性建議是添加;
- if語句可以單獨(dú)使用,也可以和多個else連續(xù)使用:
var a = 2; if (a === 1) { console.log('1'); }else if (a === 2) { console.log( '2'); }else if (a === 3) { console.log( '3'); }else { console.log( '其它'); }
布爾值的判斷:
- 一般來說,盡量把值向數(shù)字轉(zhuǎn)換。
基本原理:

基本原理
例題:
if ("hello") {
console.log ("hello")
}
結(jié)果:輸出hello
if (''){
console.log('empty')
}
結(jié)果:不輸出
if (' ') {
console.log('blank')
}
結(jié)果:輸出blank
if ([0]){
console.log('array')
}
結(jié)果:輸出array
if('0.00'){
console.log(0.00)
}
結(jié)果:輸出0.00
相等對比轉(zhuǎn)換規(guī)律

相等對比轉(zhuǎn)換規(guī)律
轉(zhuǎn)換為數(shù)字

轉(zhuǎn)換為數(shù)字
toPrimitive
- 對于object類型,先嘗試調(diào)用valueOf方法獲取結(jié)果。如果沒有定義,再嘗試調(diào)用toString獲取結(jié)果。
一些運(yùn)算的例子

一些運(yùn)算的例子
上述17,18,19題代碼
var obj = {a : 0,valueof: function( ){ retrun 1}}上述題目中未用" "或者' '引起來的,默認(rèn)沒有空字符。