2016-03-21 33 views
1

今天我看到這些代碼片段:JavaScript - 這些賦值(使用| =作爲運算符)是什麼意思?

/** 
    * @param src: any variable of any type 
    * @param html: output format (true|false); default = false 
    * @param level: (internal, don't use) 
    * 
    * @return string: formatted output 
    */ 
    function showObj(src, html, level) { 
     level |= 0; 

完整的腳本: https://codereview.stackexchange.com/questions/123283/helper-function-to-format-output-any-type-of-variable

什麼是價值分配與| =(在 「水平| = 0」)?

我以前從未見過它,找不到任何關於它的東西。

+0

這是一個按位'或'賦值運算符。我的猜測是,它確保水平是一個數字? –

+1

它的工作原理是「如果存在等級獲得他的價值,如果不分配0值」。這是一個「OR」賦值運算符 –

回答

4

那(|)是一個bit wise or operator,它通常用於數字的小數點必須被截斷的情況。

var level = 2.444434; 
level |= 0; // level = level | 0; 
console.log(level) // 2 
+1

我從來沒有想過在這之前用這種方法..好.. –

+0

@ajaprabhu Aravindasamy我想我已經明白了:它使用兩個操作數進行按位或運算,然後將結果賦值給第一個操作數? –

+0

@ st88絕對是。 'x | y'=>'to2Base(x)| to2Base(y)'=>'到10Base(resultOf2Base)' –

2

按位OR賦值運算符使用 兩個操作數的二進制表示,執行按位或運算他們並分配 結果給變量。

現場演示

var bar = 5; 
 
bar |= 2; // 7 
 

 
alert(bar)

Source