发表于: 2017-06-09 23:14:58

1 1179


今天完成的事情:

1.     完成js任务3js任务4写了法官查看所有人身份的页面,剩下的等理好逻辑再动手写。

2.     查资料看了有限状态机、回调函数、javascript同步和异步的区别与实现方式

 

有限状态机:简单说,有限状态机是一种模型,模型都用来模拟事物,能够被有限状态机这种模型模拟的事物,一般都有以下特点:

1)可以用状态来描述事物,并且任一时刻,事物总是处于一种状态;

2)事物拥有的状态总数是有限的;

3)通过触发事物的某些行为,可以导致事物从一种状态过渡到另一种状态;

4)事物状态变化是有规则的,A状态可以变换到BB可以变换到CA却不一定能变换到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设置displayflexjustify-content: space-around;后来发现通过js实现起来很困难,转换了一下思路,直接把所有的身份放在一个div里,给每个身份设置margin来使其达到每行显示3个身份的效果。

收获:

通过今天查找有限状态机、回调函数的相关资料,对他们的理解又具体了一点,明天实践一下,把他们用在自己的代码上。

 



返回列表 返回列表
评论

    分享到