发表于: 2017-03-26 23:01:33

1 1200


今天完成的事情: 学习localstorage和sessionstorage的使用,对象相关知识:属性类型、访问器属性、工厂模式、构造函数模式,理解了任务4的页面逻辑

明天计划的事情:学习function类型,学习原型模式

遇到的问题:

一、帮助师弟解决问题的时候遇到了两个问题:

他看别人代码时,这个代码(用来生成颜色随机数)看不懂:


var color = (Math.random()*0xffffff<<0).toString(16);

为什么要进行左移0位操作,不是多此一举?

console.log了一下,看图:

结论很明显,对一个number型数据左移会取整,至于为什么会这样,不是很懂。


二、对setInterval()理解有误

一开始的理解:一直以周期执行setInterval()中的函数,程序运行到这里就会一直执行下去,而不会执行下面的代码。

w3c的解释:

setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。

setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。


setInterval()其实应该这样理解:程序在运行的过程中每隔一段时间(定时器的周期),就会中途去执行定时器中的函数。


setInterval()这个函数有个问题,当setInterval()中需要执行的函数运行时间过长时(超过定时器周期),就会出现问题。定时器定时到了,而函数还没执行完,那么本该执行的这一次就会被忽略。为了避免这个问题,可以使用

setTimeout()方法,这个方法只会定时执行一次里面的函数,所以可以使用递归来实现周期执行。

function test() {
   console.log(Math.random());
   setTimeout(test,1000);
}


收获:

localstorage和sessionstorage的使用:

写入: 

  1. var json_data = {id:12,name:"yang",email:"aaa@aaa.com"};  
  2. storage.setItem("json_data",JSON.stringify(json_data));  

读取:

  1. var json_data = JSON.parse(storage.getItem("json_data"));  



返回列表 返回列表
评论

    分享到