今天我试图找到一种有趣而神秘的方法来确定JavaScript的最大整数值。其中一种方法如下:
~(+!!![]) >>> (+!![]);
实际评估为
~0 >>> 1
但是它应该返回2147483647而不是4294967295。为什么?当然,后者将是无符号整数运算的结果,而我的结果对于有符号整数是正确的。但是如何强迫呢?..
答案 0 :(得分:2)
您正在找到最大整数,然后将其移至右侧1位,将其除以2.使用:
~0 >>> 0
获取最大整数。
将其转换为“有趣”的方式,我将留给读者作为练习。