JavaScript的一些优雅写法

感谢大佬分享!

交换两个数这么写就好了
let a = 1;
let b = 2;
[a,b] = [b,a];

签到算法没带年份月份,不能直接挪用。

后面介绍了这种用法啊

知道原理才是最重要的,不要被需求遮住了想法

// 也可以使用位异或(^)
flag ^= 1;

这种写法直接开除。

原因很简单,大部分人看到这句,都会停顿一下,想想这是个啥?被看过几次,就浪费几次的时间,简直是浪费大家的生命!

我的原则很简单,尽可能写傻瓜都能看懂的代码。比如遍历数组,我只写 for (let i = 0; i < arr.length; i++)。我从不写 arr.forEach(e => {…}); 原因就是第1种写法没有人看不懂,并且也没有性能问题。

曾经收到一份简历,上面写:“炫技一般地实现了XXX”,结果:没有给他面试机会。

正常的成长线是:新手:只会写看起来很简单的代码;中级:会一些看起来很牛逼的写法,慢慢用上;老手:重新回归简单。。。

(个人看法,不喜勿喷)

1赞

嗯,我也是要求自己的团队的代码可读性强,不过我们不能撇开场景去谈好坏的问题。关于老手的看法就是,不是说要重新回归简单,而是他知道用哪种是最优的。

1赞
// if判断可以这么写
let flag = 0;
if (flag === 0) {
    flag = 1;
} else {
    flag = 0;
}
// 也可以用三目运算符
flag = flag === 0 ? 1 : 0;
// 也可以使用位异或(^)
flag ^= 1;

确实是,这三种写法,我也不会同意后两种的写法。在不影响整体性能的情况下,建议用易懂的方式来书写代码。

第2种也可以用的,也属于最简单的

基本操作:test:

一般不是都会用第二种吗?

第二种写法应该是基本操作吧…
或者既然知道是切换0和1,那么写成flag = 1 - flag也无可厚非啊

大多数时候,最原始的往往是最稳定的

[a,b]=[b,a]这个挺好的,我之前交互值都要借助辅助变量好麻烦。。。

签到那个,emmmmm感觉有点华而不实了,直接用一个7位的数组来存储7个标记不一样的吗?毕竟写代码重之中重还是可读性要强,况且这个按位计算的写法并不会带来性能上的提升,何必那么复杂

这个要看需求,比如我的这个是一个月的,那这个数组长度也吓人啊

三目运算符也是开发中不建议的写法之一。三目运算符不直观、不宜读、不易修改、不易调试、偏函数式编程,不建议在多人合作的业务开发中使用三目运算符。

mark.

大佬牛皮~

[quote=“dream_chou93, post:1, topic:98948”]
如果你的数组不需要使用了,自然应该使用Array.length=0的写法。
[/quote]大佬很强 :+1: