js代码精简优雅写法2.0

:joy:大佬,你们工地有吊机不?需要吊人上去装B不?

1赞

一部分大龄码农思维已经定势了(大部分是做多了棋牌的)用一个方法成功实现过跑通过 就很难接受用另外的方法也能实现,从来不用es6语法,遍历永远是for循环。

赞同,其实跟做啥没多大关系,跟自我学习意识有关系

同意. 我会要求自己代码要写的在不影响性能的前提下尽量方便阅读. 不要为了简洁而简洁.

1赞

4.test1如果等于0的话,你的test1||’'就会引起逻辑错误了。

关键是第二种写法 会进行查找。。。。。。

4,7 都不等价。

大部分比较实用, 也有一点小问题:

7. 真值判断

// long
if (test1 === true)

// short
if (test1)

(1 === true) ==> false
(1) ==> true

====

15. 参数必传校验

这个两个实现遇到空值的返回值是不一样的

第9点标题forEach写成forforEath了~

学到了不少哈哈~当然在项目中平衡可阅读性和精简程度就见仁见智了。

不过看到 Object.values 就想到当年刚知道这个写法的时候兴冲冲在代码里用了,结果在上传微信小游戏的时候报错了,一查才知道这个是 ES7 的语法,还没支持……

新写法还得考虑兼容性哎_(:з」∠)_

非常棒!!!立马用上

if(test1)这种写法,在有些时候确实需要校验,写的人需要很清楚这么做的后果

说实话,现在各种 for in ,for of ,for each,还是感觉最初的for循环最舒服。

其他都可以,补充一个
计算密集型代码里面,比如碰撞/几何计算等等,不建议用ES6的数组解构赋值
如这种形式 let [a,b,c] = [1,2,3]

这里为了赋值优雅,而多构造了一个临时数组对象,大量使用会无形中带来很多临时内存碎片,对GC极不友好

有兴趣的可以看看

V8 将为 React hooks 改进数组解构的性能 - 知乎 (zhihu.com)

2赞

学以致用,,

主要是第二点优化的还不够,像级了我之前的代码,想一想,比较判断本身就是布尔值,还需要三目再赋值布尔值么,不要跟我说比较判断不直观
// long
let flag
if(x > 10){
flag = true
}else {
flag = false
}

// short
let flag = x > 10 ? true : false

//我自己的
let flag = x>10
1赞

你这种一个值判断肯定是这样就好了啊 编辑器都有提示的 怎么会写那么冗余的代码呢

还有就是项目代码设计了 很多喜欢ins. 真的很拉胯 看了不少项目写的真的很水啊 纯粹就是堆逻辑(虽然有时候逻辑确实多变) 真要看代码 那肯定是热门开源框架 那才是真的有深度

人家一般是写的不是布尔值
比如
let role1 = {x:1}
let role2 = {x:3}
role1.x > role2.x?role1:role2

来吧,chatGPT给你们总结一下:

  1. 使用语法糖:JavaScript 提供了很多语法糖,如箭头函数、模板字面量、解构赋值等,可以让代码更加简洁易读。
  2. 函数式编程:函数式编程可以让代码更加模块化、可复用、易于测试,推荐使用高阶函数和纯函数。
  3. 面向对象编程:使用面向对象编程可以让代码更加可维护、易于扩展,推荐使用类和继承。
  4. 减少重复代码:避免重复代码可以提高代码的可读性和可维护性,推荐使用函数封装和模块化。
  5. 使用现代的工具和框架:现代的工具和框架可以帮助你更快速地开发和测试代码,如 Webpack、Babel、React 等。

最后,大家请仁者见仁智者见智;