2018年2月28日,第七天课程。
课程主题:bitwise operator,JS dates。
今天早上一直在处理工作上的一些事儿,所以学习得晚了些。
学习反馈:1.bitwise operator就是做各种逻辑运算的字符,或、与、异或、非等等。正好在前天做一个关于“Nim”游戏的练习时深入接触了异或这个逻辑运算。虽然那个练习还没做出来,但对于今天学习逻辑运算还是有不小帮助。
今天的第一个练习比较简单,就是给你一个连续数组,最大值不大于n,再给你一个k,然后对n里不同的两个值进行“与”运算,然后找出不大于k的那个值。编写程序如下:
这个练习花了我将近一个小时,其原因就是我对题目理解上出现了错误:第一是要对十进制的数做一次二进制的变化后再来做&运算;第二是将得到的二进制结果再做一次十进制运算后输出结果。实际上在对两个整数进行&运算时,如果是两个十进制数进行&预算其结果就是十进制数,二进制数比对也是这样。 最后是在定义Maxmimum变量是一开始使用let类型,一直运行通不过;后来改成var类型后就通过。
趁着这个机会再来复习一下var、let、const之间的区别。具体的可以参看:https://www.hackerrank.com/challenges/js10-let-and-const/topics。个人觉得这是我翻阅资料时对这个它们之间区别的最好概述。var可以是函数内的变量也可以作为全局变量,而let大多在语句、块和表达式中使用(照我之前的错误,就是let没有重新进行赋值。)
在学习过程中,不断复习之前的东西,能带给自己更深刻的记忆。
2.第二个学的是JS dates,就是怎么用函数去调去时间,再去判断时间。比较简单,我就不多说了。直接放上我的练习截图:
虽然简单,但还是出现了一个小状况,就是在用case的时候,忘记加上break,结果一直输出Sunday,后来加上break后,问题解决。如果在case中没有break,则当参数值等于其中某个case的时候,它会先进入这个case,然后在继续执行下面的case。这点也是要注意的。