Operación Sao de JS

texto

      El error más notorio en js es 0.1 + 0.2! = 0.3, al igual que java, todas las operaciones de punto flotante son inseguras debido a problemas de precisión.

Todos sugirieron no usar operaciones de bits en js,

Si el uso de js es mejor, puede usar la operación de bits para mejorar el rendimiento del cálculo. Está bien, no demasiado, solo corte el tema:

 

1. Operación de bits

Usando el   operador <<   , puede calcular rápidamente un número entero elevado a 2. Si escribe un decimal, automáticamente ignorará el decimal

1 << 2; //4 2的2次方

1 << 10 ;//1024 2的十次方

1 << 2.5 ;//4 还是2的2次方,后面是小数的话,会自动把小数去掉

2. Usa & para juzgar números pares e impares

Impar y 1 = 1

Par & 1 = 0

//奇数
console.log(7 & 1); //1 

//偶数
console.log(10 & 1);

//小数 还是自动忽略小数,如果小数点前面是那么就会返回1,是偶数就返回0
console.log(6.5 & 1);//0

3. Use !! para convertir números a valores booleanos

!! El valor distinto de cero es verdadero, si es 0, es falso

console.log(!!6);//true

console.log(!!0);//false

4. Utilice ~~, >>, <<, >>>>, | para redondear rápidamente

Quite el punto decimal directamente. >>> No se pueden redondear números negativos 

//正数
console.log(~~12.7); //12

console.log(12.7>>0);//12

console.log(12.7<<0);//12

console.log(12.7>>>0);//12

console.log(12.7|0);//12

//负数
console.log(~~-12.7|0);//-12

5. Utilice ^ para intercambiar valores rápidamente

Intercambia rápidamente los valores de dos variables

//传统的方式 需要借助第三个临时变量完成
		let a= 1;
        let b=8;
        let c=1;
        c = b ;//c=8
        b = a ;//b=1
        a = c ;//a=8
        console.log(a)//8
        console.log(b)//1


//使用 ^ ,就不需要第三个临时变量来存值了
		let a = 1;
		let b = 8;
		a ^= b;
		b ^= a;
		a ^= b;
		console.log(a);//8
		console.log(b);//1

6. Use ^ para determinar si los números son iguales

let a = 1025;

//c常规判断
if(a != 1024){
    console.log("不相等")
}
//使用 ^ 判断
if(a ^ 1024){
    console.log("不相等")
}

7. n & (n - 1)Si es 0, significa que n es una potencia entera de 2

let h = 96;
h & (h-1)
64
let h = 56;
h & (h-1)
48
let h = 48;
h & (h-1)
32
let h = 32;
h & (h-1)
0

 

huevos de Pascua

Ingrese el siguiente código en la consola

(!(~+[])+{})[--[~+""][+[]]*[~+[]]+~~!+[]]+({}+[])[[~!+[]]*~+[]]

 

 

 

 

 

 

 

 

 

 

Supongo que te gusta

Origin blog.csdn.net/qq_43619066/article/details/109255892
Sao
Recomendado
Clasificación