JS——运算巧用

88 阅读1分钟

一、短路求值

从左到右进行逻辑运算,如果不满足条件,则立即终止。后面的计算不会继续。

const a = 4;

// 普通写法
if (a > 4) {
  console.log(a)
}

// 优化写法
(a > 4) && console.log(a)

let b = '';

// 普通写法
if (!b) {
  b = 2
}

// 优化写法
b = b || 2
console.log(b)

二、交换变量

  • 赋值解构法:交换任意变量
let a = 1;
let b = 2;

[a, b] = [b, a]
console.log(a) // 2
console.log(b) // 1
  • 异或位运算:只能交换数值
let a = 1;
let b = 2;

a = a ^ b  // 3
b = a ^ b  // 1
a = a ^ b  // 2
console.log(a) // 2
console.log(b) // 1

三、按位非运算

例子:~2的运算结果,可以理解为 -(2+1),也就是 -(x+1)

const str = 'word';

// 简写 str.indexOf('o') !== -1
if (~str.indexOf('o')) {
  console.log('包含')
} else {
  console.log('不包含')
}