发表于: 2018-05-24 23:22:53
1 566
今天完成的事情:
1.完成js任务1
明天的计划:
1.完成js任务2
2.学习jquery
遇到的问题:
已解决:
1.任务一中,点击"开始闪"按钮后,程序开始变色,再点击一次“开始闪”按钮后,本来应该只有三个方块变色,变成六个了。
原因:开始闪按钮绑定了点击事件,点击后就会开始变色。再次点击,也没有判断程序是否已经在变色。
解决:加一个变量去判断程序是否在变色中。
然后每次点了开始按钮后,就去判断这个变量是true还是false
收获:
1.任务队列
为什么有任务队列
js是单线程,执行任务是执行完一个再执行下一个,如果正在执行的任务完成的时间比较久,那后面任务也只能等待这个任务完成。因此需要有异步这个东西。把需要等待的任务放到异步里面去。也就是任务队列。
.执行栈和任务队列的关系或者说机制
当执行栈执行完它里面的任务后,会去读取任务队列的任务。如果任务队列里面有任务需要执行,就会被读取到执行栈中去执行。执行栈执行任务后,又继续去读取任务队列。一直循环这个过程。这个过程就是所谓的event loop 。
2.为什么一般使用超时调用而不使用间歇调用。
间歇调用会存在性能问题,设置了间歇调用后如果没有把它取消掉,那么这个调用会一直循环运行到页面卸载掉。
间歇调用还会存在一个问题,上一个任务可能未完成,下一个任务就加入任务队列了。
超时调用可以模拟间歇调用。在超时调用的回调函数中加入超时调用。
3.java跟js的区别。
以前在学校学过java,c#,不过学的都是皮毛。
javascript的语法跟java有点像,刚开始我还以为是兄弟语言。
了解后,是有很大的本质区别。
java是强类型语言,变量是在编译时已经确认好是什么类型,而js 是动态类型语言。
也就是变量在程序执行时才能确认自己是什么类型。
还有一点比较的区别是,java是面对对象语言。
js虽然也有对象,但它的内在继承系统是原型链。
相对于css,js写起来比较好玩。很多引用类型方法不熟悉,边用边学把。
4.随机获取一个16位进制的颜色
我这个方法有点笨重,明天学习一下别人的方法。
5.随机获取三个不同的数字存入数组
评论