Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript expression console.log(1&3)背后的数学运算;_Javascript_Angularjs - Fatal编程技术网

Javascript expression console.log(1&3)背后的数学运算;

Javascript expression console.log(1&3)背后的数学运算;,javascript,angularjs,Javascript,Angularjs,我目前正在使用angularjs,这里有一段代码。我不明白,它会返回什么 authorize: function(accessLevel, role) { if(role === undefined) { role = Session.role; } return accessLevel.bitMask & role.bitMask; }, 一些测试 console.log(1&am

我目前正在使用angularjs,这里有一段代码。我不明白,它会返回什么

    authorize: function(accessLevel, role) {
        if(role === undefined) {
            role = Session.role;
        }
        return accessLevel.bitMask & role.bitMask;
    },
一些测试

        console.log(1&2);     //0
        console.log(3&7);     //3
        console.log(5&11);    //1
        console.log(0.5&11);  //0
有人知道吗


编辑:很抱歉,这个问题已经被问到了。但是,由于我不知道关键字按位排列,或者在我的预搜索中找不到与前面主题关键字匹配的关键字,因此我在此感谢您的回答

简单地说,
&
是一种操作。
返回
表达式正在检查
角色
中的位是否与
访问级别
中的位“jive”(即此角色是否已授权?)

要添加一些细节,让我们看看这一行:

console.log(3&7);     //3
在比特兰德,我们有:

3: 00000011
7: 00000111
===========
&: 00000011 = 3
对两个字节进行逐位
操作的结果是通过
根据以下规则对每个位列进行排序得出的:

0 & 0 => 0
0 & 1 => 0
1 & 0 => 0
1 & 1 => 1
如果您认为每个
0
都是
false
,每个
1
都是
true
,那么它就很有意义了。有关这方面的更多信息,请参阅上的维基百科文章

在每个位位置返回一个1,其中 两个操作数都是1