JS 的一点点优化

256 阅读1分钟

优化 JS

多个条件判断

// long
if (x === "a" || x === "b" || x === "c" || x === "d") {
  // logic
}

// short
if (["a", "b", "c", "d"].includes(x)) {
  // logic
}

变量声明

// long
let var1;
let var2 = 1;

// short
let var1,
  var2 = 1;

给多个变量赋值

//long
let test1, test2, test3;
test1 = 1;
test2 = 2;
test3 = 3;

//Short
let [test1, test2, test3] = [1, 2, 3];

比较返回值

// long
let test;
function checkReturn() {
  if (!(test === undefined)) {
    return test;
  } else {
    return callMe("test");
  }
}
var data = checkReturn();
console.log(data); //output test
function callMe(val) {
  console.log(val);
}

// short
function checkReturn() {
  return test || callMe("test");
}

短函数调用

// long
function test1() {
  console.log("test1");
}
function test2() {
  console.log("test2");
}
var test3 = 1;
if (test3 == 1) {
  test1();
} else {
  test2();
}

// short
(test3 === 1 ? test1 : test2)();

参数必传校验

// long
function hello(obj){
  let {name, age} = obj
  if(!name){
    console.warn('name is null, pls check!')
    return ''
  }
  if(!age){
    console.warn('age is null, pls check!')
    return ''
  }
  return `${name}: ${age}`
}

// short
function hello(obj){
  let {name = required('name'), age = required('age')} = obj
  return `${name}: ${age}`
}

function required(key){
  console.warn(`${key} is null, pls check!')
}

字符串转换成数字

//Long
let test1 = parseInt("123");
let test2 = parseFloat("12.3");

//Short
let test1 = +"123";
let test2 = +"12.3";

在数组中查找最大值和最小值

const arr = [1, 2, 3];
Math.max(…arr); // 3
Math.min(…arr); // 1

Object.entries()

const data = { test1: "abc", test2: "cde", test3: "efg" };
const arr = Object.entries(data);
console.log(arr);
/** ouput
[ [ 'test1', 'abc' ],
  [ 'test2', 'cde' ],
  [ 'test3', 'efg' ]
]
**/

Object.values()

const data = { test1: "abc", test2: "cde" };
const arr = Object.values(data);
console.log(arr);
/** Output:
[ 'abc', 'cde']
**/