循环语句
while循环;语法:while(条件表达式){
语句。。。
}
do...while循环;语法:do{
语句。。。
}while(条件表达式)
for循环;语法:for(①初始化表达式;②条件表达式;④更新表达式){
③语句...
}
数组去除
for(var i=0; i<aRr.length; i++){
//判断元素第一次出现的位置,恰好是当前索引时,就将元素放入新数组
if(aRr.indexOf(aRr[i]) == i){
aRr2.push(aRr[i]);
}
}
字符串反转
split字符串转成数组
reverse数组反转
join数组转成字符串
定时器弹框
setTimeout 只执行一次的定时器
clearTimeout 关闭只执行一次的定时器
setInterval 反复执行的定时器
clearInterval 关闭反复执行的定时器
定时器的基本用法
单次定时器
var timer = setTimeout(function(){
alert('hello!');
}, 3000);
清除单次定时器
clearTimeout(timer);
反复循环定时器
var timer2 = setInterval(function(){
alert('hi~~~');
}, 2000);
清除反复循环定时器
clearInterval(timer2);
变量的作用域
全局变量:函数外部定义的变量,函数内部和外部都可以访问,它的值可以共享
局部变量:函数内部定义的变量,函数内部可以访问,外部无法访问。函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部变量,如果没有,就去外部查找
闭包
闭包的本质就是函数嵌套,就是在函数里面定义函数,
内部函数可以引用外部函数的参数和变量
参数和变量不会被垃圾回收机制给回收
闭包的用途:可以存循环的索引值、做私有变量计数器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算器</title>
<script type="text/javascript">
window.onload = function(){
var oInput01 = document.getElementById('input01');
var oInput02 = document.getElementById('input02');
var oSelect = document.getElementById('select');
var oBtn = document.getElementById('btn');
oBtn.onclick = function(){
var val01 = oInput01.value;
var val02 = oInput02.value;
if(val01=="" || val02==""){
alert('输入不能为空!');
return;
}
if(isNaN(val01) || isNaN(val02)){
alert('请输入数字!');
return;
}
switch(oSelect.value){
case '0':
alert((parseFloat(val01)*100 + parseFloat(val02)*100)/100);
break;
case '1':
alert((parseFloat(val01)*100 - parseFloat(val02)*100)/100);
break;
case '2':
alert((parseFloat(val01)*100) * (parseFloat(val02)*100)/10000);
break;
case '3':
alert((parseFloat(val01)*100) / (parseFloat(val02)*100));
break;
}
}
}
</script>
</head>
<body>
<h1>计算器</h1>
<input type="text" name="" id="input01" />
<select id="select">
<option value="0">+</option>
<option value="1">-</option>
<option value="2">*</option>
<option value="3">/</option>
</select>
<input type="text" name="" id="input02" />
<input type="button" name="" value="值" id="btn" />
</body>
</html>