发表于: 2017-06-09 23:14:58
1 1179
今天完成的事情:
1. 完成js任务3,js任务4写了法官查看所有人身份的页面,剩下的等理好逻辑再动手写。
2. 查资料看了有限状态机、回调函数、javascript同步和异步的区别与实现方式
有限状态机:简单说,有限状态机是一种模型,模型都用来模拟事物,能够被有限状态机这种模型模拟的事物,一般都有以下特点:
1)可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;
2)事物拥有的状态总数是有限的;
3)通过触发事物的某些行为,可以导致事物从一种状态过渡到另一种状态;
4)事物状态变化是有规则的,A状态可以变换到B,B可以变换到C,A却不一定能变换到C;
5)同一种行为,可以将事物从多种状态变成同种状态,但是不能从同种状态变成多种状态。
可以使用javascript-state-machine库实现状态机,
使用方式:
<script src="js/jquery.js"></script> //引入JQ
<script src="lib/javascript-state-machine-master/state-machine.js"></script> //引入javascript-state-machine库
<script src="js/switch2.js"></script> //引入自己的js文件
具体可以看这篇文章http://www.cnblogs.com/lyzg/p/5058335.html
回调函数:回调函数被认为是一种高级函数,一种被作为参数传递给另一个函数(在这称作"otherFunction")的高级函数,回调函数会在otherFunction内被调用(或执行)。
我们可以像使用变量一样使用函数,作为另一个函数的参数,在另一个函数中作为返回结果,在另一个函数中调用它。当我们作为参数传递一个回调函数给另一个函数时,我们只传递了这个函数的定义,并没有在参数中执行它。
回调函数是闭包的,当作为参数传递一个回调函数给另一个函数时,回调函数将在包含函数函数体内的某个位置被执行,就像回调函数在包含函数的函数体内定义一样。闭包函数可以访问包含函数的作用域,所以,回调函数可以访问包含函数的变量,甚至是全局变量。
实现回调函数的基本原则
1使用命名函数或匿名函数作为回调:
我们在包含函数的参数中定义匿名函数,这是使用回调函数的通用形式之一,另一个经常被使用的形式是定义一个带名称的函数,并将函数名作为参数传递给另一个函数。
2传递参数给回调函数:
因为回调函数在执行的时候就和一般函数一样,我们可以传递参数给它。可以将包含函数的任何属性(或全局的属性)作为参数传递回调函数。
具体可以看这篇文章http://blog.csdn.net/luoweifu/article/details/41466537
javascript同步和异步的区别与实现方式:
javascript语言是单线程机制。所谓单线程就是按次序执行,执行完一个任务再执行下一个。单线程机制的优点在于实现起来较为简单,运行环境相对简单。缺点在于,如果中间有任务需要响应时间过长,经常会导致页面加载错误或者浏览器无响应的状况。
异步模式的四种方式:
1.回调函数callback
所谓回调函数,就是将函数作为参数传到需要回调的函数内部再执行。
2.事件驱动
javascript可以称之为是基于对象的语言,而基于对象的基本特征就是事件驱动(Event-Driven)。事件驱动,指的是由鼠标和热键的动作引发的一连串的程序操作。
例如,为页面上的某个绑定click事件;
$('#btn').onclick(function(){
console.log('click button');
});
绑定事件相当于在元素上进行监听,是否执行注册的事件代码取决于事件是否发生。
3.发布/订阅
4.promise模式
(后面两种还不了解)
明天计划的计划:
开始搞任务4
遇到的问题:
任务4写法官查看所有人身份的页面时,一开始想的有点复杂,每3个身份放在一个row里,给row设置display:flex;justify-content: space-around;后来发现通过js实现起来很困难,转换了一下思路,直接把所有的身份放在一个div里,给每个身份设置margin来使其达到每行显示3个身份的效果。
收获:
通过今天查找有限状态机、回调函数的相关资料,对他们的理解又具体了一点,明天实践一下,把他们用在自己的代码上。
评论