理解操作符
(1)等號(==)和全等號(===)
等號:等號操作符,在比較兩個操作數的相等性前,先會轉換操作數(自動轉換),然后再比較他們的相等性。
- 如果一個操作數是布爾值,則在比較相等性之前先將其轉換為數值,false轉換為0,而true轉換為1.
- 如果一個操作數是字符串,另一個操作數是數值,則在比較相等性之前先將字符串轉換為數值。
- 如果一個操作數是對象,另一個操作數不是,則調用對象的valueof()方法,獲得對象本身,接著在用前面的方法進行轉換比較
全等號:直接進行比較,不轉換數據類型,所以比較的時候還會比較數據類型。
實例:"11" != 11 //false,比較前經過轉換,11==11"11" !== 11 //true,因為數據類型不一樣,一個字符,一個數字,當然不相等(2) 布爾運算符
布爾操作符一共有三個:非(NOT),與(AND)和或(OR)
1.邏輯非(!)
無論操作數是什么數據類型,都回返回一個布爾值。邏輯非操作符首先會將它的的操作數轉換為一個布爾值(具體的轉換規則看數據類型轉換),然后再對其求反。
除了以下六個值,其他都是自動轉為true。
undefined null -0 0或+0 NaN ''(空字符串) 一般用于條件語句中,判斷結果決定是否執行函數!!x //等價于Boolean(x),一元!將操作數轉換為布爾值并取反,在取一次反,負負得正,相當于恢復正常,但是將操作數轉換成了布爾值了2.邏輯與(&&)
只有邏輯的兩個操作數同時為true才會返回true,當然了,也可以返回其它值,所以記住返回的不一定是布爾值
一般情況下用來對真值和假值作布爾運算。實例:求兩個數的絕對值和if ((a > 0)&&(b > 0)){return a+b; }else{ return a-b }3.邏輯或(||)
只要邏輯的兩個操作數其中有一個為true結果就為true,當然了,也可以返回其它值,所以記住返回的不一定是布爾值
一般用來從一組備選表達式中選出第一個真值表達式,通常用在函數體內,用來給參數提供默認值。實例:將o的成員屬性復制到p中,并返回p function copy(o,p){p=p||{};//如果沒有傳入參數p,則給p賦值一個{} }e = e || window.event;如果e不存在(為null, undefined,0等)的時候,將window.event賦值給e,否則的話繼續使用e。var max=max_width||preference.max_width||500;轉載于:https://www.cnblogs.com/YeChing/p/6296600.html
總結
- 上一篇: 关于清除浮动那些事儿~
- 下一篇: javaweb学习总结(八)——Http