今天在藍色中看到一篇文章,對js 中布林型及==運算子進行了一番比較分析。
不看不知道,一看嚇一跳,平時還真的沒有注意到這麼細節的東西:
所謂大牛與菜鳥,估計這是重要的區別之一了。
說到布林型,估計不少人都知道js中非0即為true,那麼請您執行一下下面這兩行**:
1var
itest=2
;2if(itest)36
if(itest
==true)7
你覺得答案是多少呢?
答案是: true true
----對不起,其實答案是 true false,但我相信,上面才是不少人以目中的第一答案。
為了讓大家,也為了讓我能記住,或者是知道有這麼一些我們容易忽略的東西,我將記錄一下這些區別或細節:
一、單純的布林值執行,的確是非0為true,如:
1vari1=
1;2var
i2=-1;
3vari3=
0;4alert(boolean(i1));
//true
5alert(boolean(i2));
//true
6alert(boolean(i3));
//false7if
(i1){}
//true8if
(i2){}
//true9if
(i3){}
//false
二、==運算子並不是簡單的將非0的轉為true,反之為false,反而是:
1、if type(x) is boolean, return the result of the comparison tonumber(x) == y.
if type(y) is boolean, return the result of the comparison x == tonumber(y).
也就是說:如果某乙個運算元為bool型,那麼它會被轉換成數字進行比較,而規則是:true->1 false->0 如:
1var
i1=-2;
2vari4=
2;3vari2=
1;4vari3=
0;5if
(i1==
true
) {}
//將把true->1,因此 1!=-2 false6if
(i2==
true
) {}
//將把true->1,因此1==1 true7if
(i3==
true
) {}
//這個很明顯了。 false8if
(i4==
true
) //
相當於boolean(-2) ,非0,因此為true true
11if
(i2){}
//非0,因此為ture
12if
(i3){}
//0,因此為false
13if
(i4){}
//非0,因此為true
2、if type(x) is number and type(y) is string, return the result of the comparison x == tonumber(y).
if type(x) is string and type(y) is number, return the result of the comparison tonumber(x) == y.
也就是說某一運算元為字串,另乙個是number時,字串為轉換為number,如:
1vara =
"1";
2varb =
"001";
3varc =
"";45
if(a==1
){}
//a=>number(a) true6if
(b==
1){}
//b=>number(b) true7if
(c==
1){}
//b=>0 false
3、非空字串會被轉換成true(而null和undefined為false),如: 1
vara="
a";2
varb=""
;3if(a){}
//true4if
(b){}
//false
------
說到這裡,想起jquery的$,這個東東選取元素時,結果返回jquery物件,無論元素是否存在。
因此不能用if($('#id'))來判斷是否選取到。而可以用$('#id').length>0來判斷.
------
numpy布林型索引
先建立乙個names一維陣列,再用numpy.random中的randn函式生成乙個7 4陣列 names np.array bob joe will bob will joe joe data np.random.randn 7,4 1.對names和字串 bob 的比較運算將會產生乙個布林型陣列...
ctf 布林型注入
步驟 猜資料庫名字長度 猜資料庫名字 猜表單數量 猜表單名字長度 猜表單名字 猜欄位數量 猜字段長度 猜欄位 1 and length database 3 1 and mid database 1,1 a 用substr函式也行 1 and ascii substr select database...
(四)語句形式 3 布林型資料
c語言定義的使用布林型資料的運算子,分為兩大類 關係運算子 邏輯運算子。1 比較兩個數值大小關係 大於 小於 大於等於 小於等於 2 判斷相等關係 等於 不等於 運算子優先順序排序 判斷相等關係 比較兩個數值大小關係 算術運算子 或 常見錯誤 乙個等號是賦值運算子 關係運算子只能用來比較原子資料 a...