2016-03-21 34 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