JavaScript布林型資料與 運算子

2021-08-22 02:24:49 字數 2318 閱讀 3063

今天在藍色中看到一篇文章,對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...