js ||與|、&&與&的區別介紹


1.情景展示

在js當中,|,||,&,&&分別代表什么意思,有什么區別?

2.&&,||

&&和||這個兩個運算符叫做:邏輯運算符

&&:左右兩側為true(條件都成立)時,返回true,否則,返回false,也就是:兩真則真,一假則假。

||:左右兩側有一個為true(條件一個成立即可)時,返回true;

只有,左右兩側都為false時,才返回false,也就是:一真則真,兩假則假。

在js中,還有一種特殊的存在,那就是:undefined。

我們在js當中,從頁面取值或者調用js對象的時候,經常會遇到undefined,有這樣的需求:

當第一個值為undefined時,我們讓它取第二個值;當第一個有值時,我們只取第一個值,如何實現?

通過邏輯運算符:||可以實現。

性能(速度)方面的特點:

邏輯運算符&& || 中,如果&&的第一個運算數是false,就不再考慮第二個運算數,直接返回false;

如果||的第一個運算數是true,也不再考慮第二個運算數,直接返回true。

3.&,|

&和|這個兩個運算符叫做:(逐)位運算符,也就是用來進行位運算的,即:一位一位地進行比較(平常根本用不到,頂多也就是加減乘除這種普通的運算操作)

特點:對兩個二進制操作數逐位進行比較(如果不是二進制,會將其轉換成二進制,再進行逐計算)

由於,js是弱類型語言,所以,它倆也可以進行“邏輯運算”,當用&和|進行"邏輯運算"時,實際上true被轉換成1,false被轉換成0,再進行逐位運算;

即邏輯逐位運算的本質是:逐位運算。

邏輯逐位運算 逐位運算 運算結果
邏輯逐位運算符:'&'
true&true 1&1 1
true&false 1&0 0
false&true 0&1 0
false&false 0&0 0
邏輯逐位運算符:'|'
true|true 1|1 1
true|false 1|0 1
false|true 0|1 1
false|false 0|0 0

&運算示例

|運算示例

性能(速度)方面的特點:

&和|運算符,它們總是要比較兩個運算數才得出結果,因而性能上&&和||會比&和|好。

總而言之就是:可以使用&&和||的地方,不要用&和|。

另外,'|'位運算符,還可以對小數進行取整操作,具體格式為:

小數|0

詳細用法介紹:

當小數為正數時,向下取整,相當於:Math.floor();

當小數為負數時,向上取整,相當於:Math.ceil();

window.onload = function(){
    console.log(99.9999|0);
    console.log(Math.floor(99.9999));
    console.log(-99.9999|0);
    console.log(Math.ceil(-99.9999));
}

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM