感谢大佬分享!
交换两个数这么写就好了
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”,结果:没有给他面试机会。
正常的成长线是:新手:只会写看起来很简单的代码;中级:会一些看起来很牛逼的写法,慢慢用上;老手:重新回归简单。。。
(个人看法,不喜勿喷)
嗯,我也是要求自己的团队的代码可读性强,不过我们不能撇开场景去谈好坏的问题。关于老手的看法就是,不是说要重新回归简单,而是他知道用哪种是最优的。
// if判断可以这么写
let flag = 0;
if (flag === 0) {
flag = 1;
} else {
flag = 0;
}
// 也可以用三目运算符
flag = flag === 0 ? 1 : 0;
// 也可以使用位异或(^)
flag ^= 1;
确实是,这三种写法,我也不会同意后两种的写法。在不影响整体性能的情况下,建议用易懂的方式来书写代码。
第2种也可以用的,也属于最简单的
基本操作
一般不是都会用第二种吗?
第二种写法应该是基本操作吧…
或者既然知道是切换0和1,那么写成flag = 1 - flag也无可厚非啊
大多数时候,最原始的往往是最稳定的
[a,b]=[b,a]这个挺好的,我之前交互值都要借助辅助变量好麻烦。。。
签到那个,emmmmm感觉有点华而不实了,直接用一个7位的数组来存储7个标记不一样的吗?毕竟写代码重之中重还是可读性要强,况且这个按位计算的写法并不会带来性能上的提升,何必那么复杂
这个要看需求,比如我的这个是一个月的,那这个数组长度也吓人啊
三目运算符也是开发中不建议的写法之一。三目运算符不直观、不宜读、不易修改、不易调试、偏函数式编程,不建议在多人合作的业务开发中使用三目运算符。
mark.
大佬牛皮~
[quote=“dream_chou93, post:1, topic:98948”]
如果你的数组不需要使用了,自然应该使用Array.length=0的写法。
[/quote]大佬很强