发表于: 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的使用:
写入:
- var json_data = {id:12,name:"yang",email:"aaa@aaa.com"};
- storage.setItem("json_data",JSON.stringify(json_data));
读取:
- var json_data = JSON.parse(storage.getItem("json_data"));
评论