使用^切换变量 0 和 1

// 假如我们通过某个条件来切换一个值为0或1
  // if判断
  if (toggle) {
    toggle = 0;
  } else {
    toggle = -1;
  }

使用 & 判断奇偶性

奇数的二进制最后一位必然为1,所以任意一个奇数 & 1 一定等于1
偶数 & 1 = 0
奇数 & 1 = 1

  console.log(2 & 1); // 0
  console.log(3 & 1); // 1

使用 !! 强制转为布尔值

  // 特殊值 undefined, null, 0, -0, NaN, "" 都为false
  console.log(!!-3); // true
  console.log(!!'字符串'); // true

使用+-*/强制转为Number

  let num1 = +'1234'; // Number
  let num2 = '1234' - 0; // Number
  let num3 = '1324' * 1; // Number
  let num4 = '1234' / 1; //Number

使用 ~、>>、<<、>>>、| 来取整

  // 重要字符
  let b = Array(6).join(0); // '000000'7
  let c = Array(6).join('串'); // '串串串串串串'

  // ES6
  let d = '0'.repeat(7); // '0000000'

  // 清空数组
  let arr = [1, 2, 3, 4, 5, 6]
  arr.length = 0 // []

  // Array.slice() Array.concat() 实现数组浅拷贝
  let arr1 = [1, 2, 3, 4, 7, 8]
  let arr2 = arr1.slice() // [1, 2, 3, 4, 7, 8]
  let arr3 = arr1.concat() // [1, 2, 3, 4, 7, 8]

Boolean过滤驻足中的所有假值

  let arr = [0, 1, false, 2, '', 'qwe', 'e' * 12, NaN, undefined, -2, 45]
  let newArr = arr.filter(Boolean)
  console.log(newArr); // [1, 2, 'qwe', -2, 45]

JS || && 妙用 if else选择情况

  // if else
  var str_level = 0;
  if (str_name == 'life) {
    str_level = 1;
  } else if (str_name == 'is') {
    str_level = 2;
  } else if (str_name == 'a') {
    str_level = 3;
  } else if (str_name == 'game') {
    str_level = 4;
  } else {
    str_level = 0;
  }

  // switch
  var = str_level = 0;
  switch (str_name) {
    case 'life': str_level = 1;
    break;
    case 'is': str_level = 1;
    break;
    case 'a': str_level = 1;
    break;
    case 'game': str_level = 1;
    break;
    default: str_level = 0;
    break;
  }

  // && ||
  var str_level = 
      (str_name == 'life' && 1) ||
      (str_name == 'is' && 2) ||
      (str_name == 'a' && 3) ||
      (str_name == 'game' && 4) ||
      0;

  // ---最优---
  function getLevel(str_name) {
    return (
      {
        'life': 1,
        'is': 2,
        'a': 3,
        'game': 4
      }[str_name] || 0;
    )
  }

通过字符串比较时间先后

 var a = '2020-12-12';
 var b = '2020-12-13';
 
 console.log(a > b, a < b) // false true
 console.log('21:00' < "09:10") // false
 console.log('21:00' < '9:10') // true    时间形式注意补0
posted on 2022-02-14 17:58  小丶帅  阅读(23)  评论(0编辑  收藏  举报