✨ JavaScript的一些小技巧

阿轩的BUG
文章191
评论56
标签101
站点日志
作者总数:1位
置顶文章:0篇
标签总数:101条
文章总数:196篇
评论总数:56条
微语总数:201条
运行天数:2317天
最近更新:2026-07-28
文章标签
最新评论
Sherlock
2025-08-21
不是应该打包成apk文件吗,怎么突然就运行编译了,下一步呢
老金er
2025-05-25
人生设计非常必要,在信息化发达的今天,周围大部分人依然只能过着人生工程模式生活,长时间生活洗礼后,尽管“人生工程”已经不再适合很多人,他们也无法做出任何改变,人生设计给我们提供了新的思路,值得尝试
赏帮赚
2025-05-25
职场太多的尔虞我诈
三笑
2024-08-16
emlog6.0.1可以升级支持吗?
pony
2024-07-08
这篇文章提供了一种新的人生规划方法——"人生设计",它借鉴了产品设计的理念,鼓励人们以创造性和探索性的方式思考和规划自己的生活。以下是对这篇文章的几个评价维度: 创新性:将产品设计的理念应用于人生规划是一个新颖的视角,为人们提供了一种跳出传统生活轨迹,探索个性化生活路径的方法。 实用性:文章不仅提出了理念,还详细介绍了具体的实施步骤,包括自我评估、制定计划、原型设计和实践选择等,具有很强的操作性。 启发性:通过强调好奇心、不断尝试、重新定义问题等心态,文章鼓励人们打破常规,勇于探索未知,这对于激发个人潜能和创造力具有积极作用。 适应性:"人生设计"理念适用于不同人生阶段和不同背景的人,无论是希望从头开始的人,还是已经取得一定成就但希望探索新方向的人,都可以从中获得启发。 情感共鸣:文章对许多人对传统生活轨迹的不满和对改变的渴望进行了深刻的洞察,能够引起读者的共鸣。 可持续性:人生设计强调的是一个持续迭代和试错的过程,这与现实生活的发展规律相吻合,有助于人们在不断变化的环境中做出适应性调整。 教育意义:作为一种人生规划方法,"人生设计"可以作为教育的一部分,帮助年轻人更早地学会自我探索和规划,为未来的生活和职业发展打下基础。 局限性:尽管"人生设计"提供了一种新的思考框架,但它可能需要个人具备一定的自我认知和反思能力,对于一些缺乏自我探索经验的人来说,可能需要额外的指导和支持。 总体来说,这篇文章提供了一种有价值的人生规划方法,对于那些渴望改变、寻求个性化生活的人来说,是一种有益的参考和指导。
首页值得一看 🔍️

不少人有五年的 JavaScript 经验 但实际上可能只是一年的经验重复用了五次而已 完成同样的逻辑和功能 有人可以写出意大利面条一样的代码 也有人两三行简洁清晰的代码就搞定了 简洁的代码不但方便阅读 还能减少复杂逻辑和出错的可能性 本文就介绍一些常用的JavaScript简化技巧 日常开发都用得上

1. 简化条件表达式


经常碰到这种情况 要判断某个变量是否为指定的某些值 用常规的逻辑表达式会很长 我的做法是把这些值放进数组里:

// 太长的逻辑表达式
if (x === 'abc' || x === 'def' || x === 'ghi' || x ==='jkl') {
    //其他逻辑
}
// 简写
if (['abc', 'def', 'ghi', 'jkl'].includes(x)) {
   //其他逻辑
}

2. 简化 if … else


if…else太常用了 以至于很多人都忘了其实还有其他方式来判断条件 比如简单的变量赋值 完全没必要用这种冗长的语句 一行表达式就搞定了:

// 新手的写法
let test= boolean;
if (x > 100) {
    test = true;
} else {
    test = false;
}
// 简写表达式
let test = (x > 10) ? true : false;
// 更直接的
let test = x > 10;
console.log(test);

三元表达式可以做复杂的条件分支判断 不过牺牲了一些可读性:

let x = 300,
let test2 = (x > 100) ? 'greater 100' : (x < 50) ? 'less 50' : 'between 50 and 100';
console.log(test2); // "greater than 100"

3. 判空并赋默认值


Code Review 的时候我经常看到这样的代码 判断变量不是null undefined ‘’的时候赋值给第二个变量 否则给个默认值:

if (first !== null || first !== undefined || first !== '') {
    let second = first;
}
// 简写
let second = first || '';

4. 简写循环遍历


for 循环是最基本的 但是有点繁琐 可以用for…in、for…of或者forEach代替:

// Longhand
for (var i = 0; i < testData.length; i++)

// Shorthand
for (let i in testData) or  for (let i of testData)

数组遍历:

function testData(element, index, array) {
  console.log('test[' + index + '] = ' + element);
}

[11, 24, 32].forEach(testData);
// 打印输出: test[0] = 11, test[1] = 24, test[2] = 32

4. 简化 switch


这个技巧也很常用 把switch 转换成对象的key-value形式 代码简洁多了:

// Longhand
switch (data) {
  case 1:
    test1();
  break;

  case 2:
    test2();
  break;

  case 3:
    test();
  break;
  // And so on...
}

// Shorthand
var data = {
  1: test1,
  2: test2,
  3: test
};

data[anything] && data[anything]();

5. 简化多行字符串拼接


如果一个字符串表达式过长 我们可能会拆成多行拼接的方式 不过随着 ES6 的普及 更好的做法是用模板字符串:

//longhand
const data = 'abc abc abc abc abc abc\n    '
    + 'test test,test test test test\n    '
//shorthand
const data = `abc abc abc abc abc abc
         test test,test test test test`

6. 善用箭头函数简化 return


ES6 的箭头函数真是个好东西 当函数简单到只需要返回一个表达式时 用箭头函数最合适不过了 return都不用写:

Longhand:
//longhand
function getArea(diameter) {
  return Math.PI * diameter
}
//shorthand
getArea = diameter => (
  Math.PI * diameter;
)

7. 简化分支条件语句


又是你 if…else if…else 跟switch类似 也可以用key-value形式简化:

// Longhand
if (type === 'test1') {
  test1();
}
else if (type === 'test2') {
  test2();
}
else if (type === 'test3') {
  test3();
}
else if (type === 'test4') {
  test4();
} else {
  throw new Error('Invalid value ' + type);
}
// Shorthand
var types = {
  test1: test1,
  test2: test2,
  test3: test3,
  test4: test4
};

var func = types[type];
(!func) && throw new Error('Invalid value ' + type); func();

8. 重复字符串 N 次


有时候出于某种目的需要将字符串重复 N 次 最笨的方法就是用for循环拼接 其实更简单的方法是用repeat:

//longhand 
let test = ''; 
for(let i = 0; i < 5; i ++) { 
  test += 'test '; 
} 
console.log(str); // test test test test test 
//shorthand 
'test '.repeat(5);

9. 指数运算


能省则省 低碳环保

//longhand
Math.pow(2,3); // 8
//shorthand
2**3 // 8

10. 数字分隔符


这是比较新的语法 ES2021 提出来的 数字字面量可以用下划线分割 提高了大数字的可读性:

// 旧语法
let number = 98234567

// 新语法
let number = 98_234_567
上一篇
🍪 傻傻分不清之 Cookie、Session、Token、JWT
下一篇
⚡️ Vite 2.0正式发布