注册倒计时
<textarea name="" id="" cols="30" rows="10">
用户注册协议
欢迎注册成为京东用户!在您注册过程中,您需要完成我们的注册流程并通过点击同意的形式在线签署以下协议,请您务必仔细阅读、充分理解协议中的条款内容后再点击同意(尤其是以粗体或下划线标识的条款,因为这些条款可能会明确您应履行的义务或对您的权利有所限制)。
【请您注意】如果您不同意以下协议全部或任何条款约定,请您停止注册。您停止注册后将仅可以浏览我们的商品信息但无法享受我们的产品或服务。如您按照注册流程提示填写信息,阅读并点击同意上述协议且完成全部注册流程后,即表示您已充分阅读、理解并接受协议的全部内容,并表明您同意我们可以依据协议内容来处理您的个人信息,并同意我们将您的订单信息共享给为完成此订单所必须的第三方合作方(详情查看
</textarea>
<br>
<input type="button" value="我已阅读同意(60)" id="btn" disabled="disabled" />
<script>
let sec = 60;
function countDownTimer() {
timer = setInterval(function() {
// 获取注册按钮的DOM
let btn = document.getElementById("btn");
sec--;
btn.value = `我已阅读同意(${sec})`;
if(sec == 0) {
clearInterval(timer); // 清除定时器
btn.disabled = false; // 按钮恢复可用
btn.value = '我已阅读同意'; // 设置按钮文本
}
},1000)
}
countDownTimer();
</script>
运算符
<script>
// = 赋值运算符
// let a = 21
// a = 33
// a += 4 // a = a + 4
// a *= 2 //a = a * 2 74
//a -= 3 //a = a - 3
// a /= 2 //a = a / 2 35.5
// alert(a)
// let b = a++ //先赋值,再自增
// alert(b)
// alert(a) //36.5
// b = ++a //先自增,再赋值
// alert(b)
// 比较运算符
// > < >= <= == ===
let num1 = 2
let num2 = '2'
alert(num1 == num2)
alert(num1 === num2)
// == (隐式转换)只比较数值,将字符串转换为数字类型后进行比较 === 即比较数值,也比较类型
swich
switch(状态值){
case 状态值1:
code...1
break;//跳出
case 状态值2:
code...2
break;
case 状态值3:
code...3
break;
default:
code...4
break;
}
switch执行原理:用switch括号里面的 结果和case后面的结果做比对,如果一样就执行对应的case后面的代码。
switch语句中的break关键字一定要写,要不然执行了相应的case之后会跳转下一个case语句。
例子
let num = +prompt('请输入今天星期几了:')
switch (num) {
case 1:
alert('星期一')
break
case 2:
alert('星期二了')
break
case 3:
alert('星期三了')
break
case 4:
alert('星期四了')
break
case 5:
alert('星期五了')
break
case 6:
alert('周末了')
break
case 7:
alert('周末了')
break
default:
alert('你是外星人吗')
}
while循环
循环语句是可以将一段代码循环执行。
while循环:首先对条件表达式进行判断,如果为true则执行代码块,然后再次进行判断,如果还是true,将再次执行,直到条件表达式为false,循环结束。
语法:
while(条件表达式){
语句...
}
do...while循环:首先执行一遍语句,在进行条件表达式的判断,如果为true则继续执行,如果为false,则执行完语句,终止循环。
语法:
do{
语句...
}while(条件表达式)
while 和 do while 功能类似,不同之处,while是先判断在执行,do...while是先执行,后判断。如果条件表达式不满足时,do...while至少执行完毕了一次,而while则不执行。
例子
// while 一定要有终止条件
let i = 10
// while (i > 11) {
// console.log('你是大聪明')
// i--
// }
do {
console.log('你是大聪明')
i--
} while (i > 11)
定时器
<script>
// setTimeout\setInterval 定时器
// setTimeout :某段代码或者函数在多久后执行
// setTimeout(code||function,time(ms))
// 返回值是一个整数,代表定时器编码
// let timer = setTimeout('console.log("我是一秒之后执行的代码")', 4000)
// console.log(timer)
// let timer2 = setTimeout('console.log("我是4秒之后执行的代码")', 1000)
// console.log(timer2)
// 传的是函数名
// let timer3 = setTimeout(
// fn, 3000)
// function fn() {
// console.log('6666666')
// }
// setTimeout(函数或一段代码,延迟时间,实参……)
// let timer4 = setTimeout(function (a, b) {
// console.log(a + b)
// }, 2000, 1, 4)
let obj = {
uname: 'gouxin',
a: 3,
b: 4,
sum: function () {
console.log(this)
console.log(this.a)
}
}
obj.sum()
// setTimeout(obj.sum, 1000)
// 定时器的第一个参数如果是对象方法,this不再指向对象,指向全局环境
// setTimeout(function () { obj.sum() }, 1000)
let a = setTimeout(obj.sum.bind(obj), 1000)
clearTimeout(a)
// setInterval 间隔一段时间,将代码或者函数执行一次
let timer = setInterval(' console.log(\'6666666\')', 1000)
clearInterval(timer)
let timer2 = setInterval(function (a, b) {
console.log(a + b)
}, 1000, 2, 3)
clearInterval(timer2)
</script>