JS加密/解密之那些不为人知的基础逻辑运算符

JS加密/解密之那些不为人知的基础逻辑运算符_第1张图片

不多说,直接上干货

  1. 使用逻辑非运算符 ! 和双重逻辑非运算符 !!:例如 ![]!![]!0!!0!""!!""
  2. 空字符串的转换:!""!!""
  3. 数组和对象的类型转换:[] + [][] - []{} + [][] + {}
  4. 对象和原始值的自动拆箱:例如 ({ valueOf: () => 5 }) + 3
  5. 减法运算符的字符串转换:例如 "10" - "2"
  6. 相等运算符的类型转换:例如 "1" == 1true == 1
  7. 类型转换函数:例如 String()Number()Boolean() 函数可以用于将其他类型的值转换为字符串、数字和布尔值。

案例代码 实践出真知

// 逻辑非运算符和双重逻辑非运算符
console.log(![]); // false
console.log(!![]); // true
console.log(!0); // true
console.log(!!0); // false
console.log(!""); // true
console.log(!!""); // false

// 空字符串的转换
console.log(!""); // true
console.log(!!""); // false

// 数组和对象的类型转换
console.log([] + []); // ""
console.log([] - []); // 0
console.log({} + []); // 0
console.log([] + {}); // "[object Object]"

// 对象和原始值的自动拆箱
console.log(({ valueOf: () => 5 }) + 3); // 8

// 减法运算符的字符串转换
console.log("10" - "2"); // 8

// 相等运算符的类型转换
console.log("1" == 1); // true
console.log(true == 1); // true

// 类型转换函数
console.log(String(123)); // "123"
console.log(Number("123")); // 123
console.log(Boolean(0)); // false

结尾

这些基础的知识,是每个js加密人必须知道的小知识。

当然了这些小东西都可以直接在jsjiami官网一键解出来,但是如何合理运用他,就是各位的本事了。

你可能感兴趣的:(javascript,前端,开发语言)