我是一个只是为了好玩而编写代码的人,并没有在学术或专业环境中深入研究它,所以像这些按位运算符这样的东西真的让我感到厌烦.
我正在阅读一篇关于JavaScript的文章,它显然支持按位操作.我一直看到这个地方提到的这个操作,我试着去弄清楚究竟是什么,但我似乎根本没有得到它.那他们是什么?清楚的例子会很棒!:d
还有几个问题 - 按位运算的一些实际应用是什么?你何时可以使用它们?
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接
看到一段有趣的代码,在重复数字列表中找到一个孤独的数字(列表中的每个数字除了一个之外都会出现两次).
function findNonPaired(listOfNumbers) {
let nonPairedNumber = 0
listOfNumbers.forEach((n) => {
nonPairedNumber ^= n
})
return nonPairedNumber
}
const x = [1,5,4,3,9,2,3,1,4,5,9]
console.log(findNonPaired(x))Run Code Online (Sandbox Code Playgroud)
这个解决方案看起来非常优雅,但我很好奇^=操作员在这里做了什么?
我想知道Javascript中是否有"&"逻辑运算符.我尝试在Firebug(Firefox)中运行1&0和1 && 0,并且两者都返回0.
有人告诉我C#接受&和double &&,double会更有效率,因为它会在遇到false时立即退出比较循环,但我无法找到Javascript的任何信息.
有任何想法吗?
可能的重复:
这些运营商做了什么?
>>在javascript中
有人可以解释一下按位运算符>> 1吗?
例:
65 >> 1 = 32
而且当 >> 0
它在这个例子中实现了什么:
var size = (Math.random() * 100 >> 0) + 20;
我试图在JS上找出这个运算符 -
'string' ^= 'string';
Run Code Online (Sandbox Code Playgroud)
但我找不到蚂蚁信息.这是比较还是作业?
谢谢.
我不明白什么>> =意味着(我认为大于或等于> =)也是:(时间和1)从下面.
function repeat (string, times) {
var result = ''
while (times > 0) {
if (times & 1) result += string
times >>= 1
string += string
}
return result
}
Run Code Online (Sandbox Code Playgroud) 我正在使用base64编码脚本,但它在JSLint中抛出了很多警告.
有人能告诉我这些符号在JavaScript中的含义是什么吗?
>>,<<,|,&
以下是包含这些符号的代码示例:
if ((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
Run Code Online (Sandbox Code Playgroud)
我想重写它,以便它由JSLint验证.
可能重复:
>>在javascript中
我经历了一些代码,我跑进2个怪异运营商:>>和<<,在形式2<<3和442132132>>546542132.
我推断这x<<y意味着x时间2的力量y.意思4<<3是4*(Math.pow(2,3)),是32,但是我找不到什么x>>y意思.
我知道它通常会返回0小数字,但是当涉及高数字时,结果通常是一个小数字.
可能重复:
这些运营商做了什么?
我正在使用一些javascript for html 5的画布.我正在查看一些现有的代码,我遇到了以下情况:
element.height >> 1
element.width >> 1
Run Code Online (Sandbox Code Playgroud)
它用作某些算术的一部分.
我也在使用prototype.js,如果这有帮助的话.
function ArithGeo(arr) {
var diff = arr[1]-arr[0];
var ratio = arr[1]/arr[0];
var allRatioAreGood = true;
var allDiffAreGood = true;
for(var i = 2;i<arr.length;i++){
// console.log(arr[i]-arr[i-1] == diff);
allRatioAreGood &= (arr[i]/arr[i-1] == ratio);
allDiffAreGood &= (arr[i]-arr[i-1] == diff);
}
// code goes here
if (allRatioAreGood){
return "Geometric"
}else if (allDiffAreGood){
return "Arithmetic";
}else {
return -1
}
}
console.log(ArithGeo([2, 4, 6, 7 , 8 ,10]));
Run Code Online (Sandbox Code Playgroud)
当我们在for循环中使用它时,'&='是什么意思?它是如何工作的?有人可以解释一下吗?
另外,这两条线是如何工作的?
allRatioAreGood &= (arr[i]/arr[i-1] == ratio);
allDiffAreGood &= (arr[i]-arr[i-1] == diff);
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?