在Javascript中,什么';“这是什么意思?”;抵消>&燃气轮机>;=0“;分配
在Javascript中,什么';“这是什么意思?”;抵消>&燃气轮机>;=0“;分配,javascript,Javascript,>>=是Javascript中的无符号右移运算符: 我看到作者正在使用以下代码: if (typeof offset !== 'number' || offset % 1 !== 0) throw TypeError("Illegal offset: "+offset+" (not an integer)"); offset >>>= 0; if (offset < 0 || offset + 0 > this.buffer.byteLength) th
>>=
是Javascript中的无符号右移运算符:
我看到作者正在使用以下代码:
if (typeof offset !== 'number' || offset % 1 !== 0)
throw TypeError("Illegal offset: "+offset+" (not an integer)");
offset >>>= 0;
if (offset < 0 || offset + 0 > this.buffer.byteLength)
throw RangeError("Illegal offset: 0 <= "+offset+" (+"+0+") <= "+this.buffer.byteLength);
if(偏移量的类型!='number'| |偏移量%1!==0)
抛出类型错误(“非法偏移量:“+offset+”(非整数)”);
偏移量>>=0;
if(偏移量<0 | |偏移量+0>此.buffer.bytellength)
throw RangeError(“非法偏移:0将值移位为零步的唯一目的是强制转换为32位整数并返回
因为前面的语句检查它是一个数字,并且这个数字没有小数部分,所以它在代码中没有任何作用
对于负值,它会将其转换为该值的无符号2的补码,例如从-1
到4294967295
。由于该值超出了缓冲区的大小,它将被下一个语句中的检查捕获
如果保持shift,则不需要在下一条语句中检查偏移量<0,因为这永远不会发生。可能不是重复的,但它包含答案的一部分:“>>>0是唯一一个将任何类型转换为正整数的运算符:“-但是为什么要转换它,然后检查它是否为负数?我会像你说的那样删除那行。很好的解释,谢谢。