一,JS计时事件
JS计时事件主要有两个方法:
- setTimeout 未来某时执行代码
- clearTimeout 取消setTimeout()
- 1000 毫秒等于一秒
1.setTimeout
var time = setTimeout("JS语句",毫秒);
毫秒是指从现在起多少秒以后执行设定语句;
5s后显示弹出框
<input type="button" value="计时" onClick="timedMsg()">
<script>
function timedMsg() {
var t=setTimeout("alert('5 seconds!')",5000)
}
</script>
计时器(无限循环):点击计时开始按钮,时间会从0开始不断的往上加。
关键:计时函数timecount的递归调用,以及count的自增;
<form method="get">
<input type="button" value="点击开始计时" onclick="timecount()" id="btn">
<input id= "tst" type="text">
</form>
<script>
var time;
var count = 0;
function timecount(){
document.getElementById("tst").value = count;
count = count +1;
time = setTimeout("timecount()",1000);
}
</script>
![](https://img.haomeiwen.com/i9330151/34f23d8db0fbc021.png)
![](https://img.haomeiwen.com/i9330151/a773939d5f9400fa.png)
2.clearTimeout()
可以暂停的计时器,点击暂停后计时停止;
关键:在无限循环的计时器基础上利用clearTimeout函数暂停计时
<form method="get">
<input type="button" value="点击开始计时" onclick="timecount()" id="btn">
<input id= "tst" type="text">
<input type="button" value="暂停计时" onclick="stopcount()" >
</form>
<script>
var time;
var count = 0;
function timecount(){
document.getElementById("tst").value = count;
count = count +1;
time = setTimeout("timecount()",1000);
}
function stopcount(){
clearTimeout(time);
document.getElementById("btn").value= "继续计时"
}
</script>
![](https://img.haomeiwen.com/i9330151/3a3b71c39ef008ce.png)
![](https://img.haomeiwen.com/i9330151/5cbf8e7e5cd243c5.png)
![](https://img.haomeiwen.com/i9330151/3ff92210c9dda0ee.png)
二,JS Cookies
cookie 用来识别用户。
有关cookie的例子:
- 名字cookie:当首次访问页面时,可能会注册,包括用户名。用户名会存储于 cookie 中。下次登录时,用户名会从 cookie 中取回,我们就会收到类似 "Welcome John Doe!" 的欢迎词。
- 密码cookie:当首次访问页面时,可能会注册,包括设置密码,密码也会存储在cookies中,下次登录,密码会从cookie中取回。
- 日期cookie:当首次访问你的网站时,当前的日期可存储于 cookie 中。当下次访问再网站时,日期会cookie 中取回。我们就会收到一条消息:"Your last visit was on Tuesday August 11, 2017!"。。
创建和存储 cookie的代码真的好长o(╥﹏╥)o,无力看下去。日后补上吧
<body onLoad="checkCookie()">
<script type="text/javascript">
function getCookie(c_name)
{
if (document.cookie.length>0)
{
c_start=document.cookie.indexOf(c_name + "=")
if (c_start!=-1) {
c_start=c_start + c_name.length+1 ;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}
function checkCookie()
{
username=getCookie('username');
if (username!=null && username!=""){
alert('Welcome again '+username+'!');
}
else {
username=prompt('Please enter your name:',"");
if (username!=null && username!=""){
setCookie('username',username,365);
}
}
}
</script>
</body>
</html>
3.构造函数并创建对象
1.构造函数:this 指向被此 构造函数 创建出来的 对象
function person(){
this.name = "小明";
this.age = 20;
this.score = 80;
}
2.构造函数并创建对象:要使用 new
关键字去调用构造函数,并且this指向这个新对象
function person(){
this.name = "小明";
this.age = 20;
this.score = 80;
}
var persons = new person();
3.向构造函数中传入参数: 通过使用 参数 来为 wheels ,seats ,engines 属性进行赋值
function person(name, age,score){
this.name = name;
this.age = age;
this.score = score;
}
var persons = new person("小明",20,80);
4.构造函数私有属性与私有方法:
我们使用了 this 指向当前(将要被创建的)对象中的 公有属性
。
创建 私有属性
和 私有方法
,它们两个在对象外部是不可访问
的。
方法:构造函数 中,使用我 var
去创建变量,来替代我们使用 this
创建 属性 。
举例:freeCodeCamp上的一道题:
修改 Bike 的 构造函数 ,使它有一个名为 gear 的 私有属性 ,
还有两个公有方法,叫做 getGear 和 setGear ,这两个方法用来获得和设置 gear 的值。
myBike.gear 在外部访问时,应该保持 undefined ,即外部访问不到私有属性。
当调用 myBike.setGear(4)时,myBike.getGear() 应该返回 4 。
当调用 myBike.setGear(3) 时,myBike.getGear() 应该返回 3 。
当调用 myBike.setGear(1) 时,myBike.getGear() 应该返回 1
var Car = function() {
// this is a private variable
var speed = 10;
// these are public methods
this.accelerate = function(change) {
speed += change;
};
this.decelerate = function() {
speed -= 5;
};
this.getSpeed = function() {
return speed;
};
};
var Bike = function() {
// 只能在这一行下面写代码
var gear = 5;
this.getGear = function() {
return gear;
};
this.setGear = function(val) {
gear = val;
};
};
var myCar = new Car();
var myBike = new Bike();
网友评论