一、函数返回值----将相应的值返回到函数调用的地方
1. 可以不写返回值
2. 可以没有return,如果不返回,默认返回undefined
3. 本函数内,renturn之后的JS语句不再执行,跳出
4. 可以返回任意类型
例一:window.onload=function() {function fn() {var a=4;alert(123);return a+1;alert(456);};//默认返回undefinedalert( fn() );};
例二:function fn(){var a=4;return [a];}var n=fn();alert()n[0];例三:function fn(){var a=4;return function(){alert(a);};};//默认返回undefined//var n=fn(); //闭包fn()();
5. 函数预解析,函数可以先用后定义---->同一个作用域下
var oBtn=document.getElementById('btn');oBtn.onclick=function(){fn(3);}function fn(a){ //预解析alert(a);}
6. 局部函数也会预解析:当JS执行到这个函数的时候才会预解析。
fn();function fn(){fn2();function fn2(){alert(444);}}
7. 变量也会预解析,可以理解为提前设定 var a; 只有var,才会预解析
8. return时函数就结束了,return 后面的代码不会执行。没有return 时,返回undefined
例一:
var a=5;
function fn(){
alert(a);
var a=4;
alert(a);
}
fn(a);
alert(a); //全局变量不受局部影响
例二:
var a=5;
function fn(){
alert(a); //5
a=4;
alert(a); //4
}
fn();
alert(a); //4
9. 一个函数应该只返回一种类型的值
function show(a,b){
return a+b;
}
alert(show(11,12));
变量、参数、返回值——可以装任何东西(数字、字符串、元素、数组、函数)
二、定时器
定时器---同一个对象 : 每次用之前先清掉上一次
定时器中不能用this
1. 开启定时器
(1) setInterval 间隔型
(2) setTimeout 延时型
可以在函数内部调用函数自己
function f(){
alert(123)
setTimeout(f,1000);
}
setTimeout(f,1000);
2. 停止定时器
clearInterval / clearTimeout
var oBtn1=document.getElementById('btn1');
var oBtn2=document.getElementById('btn2');
oBtn1.onclick=function(){
timer=setInterval(function(){
alert('a')
},3000);
}
oBtn2.onclick=function(){
clearInterval(timer);
}
3. var oBox=document.getElementById('box');
function f(){
alert(123);
}
// setInterval('alert(11)',500); //第一个参数也可以放字符串,相当于eval
setInterval(f,500);
4.闪烁提醒
var timer;
oBtn.onclick=function(){
oDiv1.style.display=oShadow.style.display='block';
}
oShadow.onclick=function(){
clearInterval(timer);
timer=setInterval(function(){
var n=0;
n++;
n%2==0?oH1.style.background='#ccc':oH1.style.background='#f00';
n=20&&clearInterval(timer);
},50);
}
5. 双色球
function findSame(arr,n){
for(var i=0;i<arr.length;i++){
if(arr[i]==n){
return false;
}
return true;
}
}
function rnd(n,m){
return parseInt(Math.random()*(m-n+1)+n);
}
function toDou(n){
if(n<10){
return '0'+n;
}
return ''+n;
}
window.onload=function(){
var oBtn=document.getElementById('btn');
var oBox=document.getElementById('box');
var arr=[];
oBox.innerHTML='';
oBtn.onclick=function(){
while(arr.length<6){
var number=rnd(1,33);
if(findSame(arr,number)){
arr[arr.length]=toDou(number);
}
}
arr[arr.length]=toDou(rnd(1,16));
for(var i=0;i<arr.length;i++){
var Class=i==arr.length-1?'blue':'';
oBox.innerHTML+='<span class="'+Class+'">'+arr[i]+'</span>';
};
}
}
6. 延时提示框
(1) 移除延时隐藏----移入下面的div后,还是隐藏了
(2) 简化代码----把长得像的变成长得一样的。合并两个相同的mouseover和mouseout。连等。
三、随机数
1. Math:处理数学任务
0 <= Math.random() <1
0 <= Math.random()*100 <100
2. 公式:求n-m(不会出现m) Math.random()*(m-n)+n
求n-m(出现m) Math.random()*(m-n+1)+n
Math.random()*(大-小)+小
例一:随机数
window.onload=function(){
for(var i=0;i<100;i++){
//0-1 document.write(Math.random()+'<br />');
//0-100 document.write(Math.random()*100+'<br />');
//10-30 document.write(Math.random()*20+10+'<br />');
//5-20包括20 document.write(Math.random()*(20-5+1)+5+'<br />');
}
}
例二:随机颜色
window.onload=function(){
var oBox=document.getElementById('box');
oBox.onclick=function(){
var r=rnd(0,255);
var g=rnd(0,255);
var b=rnd(0,255);
this.style.background='rgb('+r+','+g+','+b+')';
}
}
function rnd(n,m){
return parseInt(Math.random()*(m-n)+n);
}
例三:彩票
function rnd(n,m){
return parseInt(n+Math.random()*(m-n));
}
var arr=[];
var num;
while(arr.length<6){
num=rnd(1,33);
if(findInArr(n,m){
arr.push(num);
}
}
alert(arr);
function findInArr(arr,n){
for(var i=0;i<arr.length;i++){
if(arr[i]==n){
return false;
}
}
return true;
}
四、自动播放的幻灯片
var oBox=document.getElementById('box');
var aBtn=oBox.getElementsByTagName('input');
var aDiv=oBox.getElementsByTagName('div');
for(var i=0;i<aBtn.length;i++){
aBtn[i].index=i;
aBtn[i].onclick=function(){
for(var i=0;i<aBtn.length;i++){
aBtn[i].className='';
aDiv[i].className='';
}
this.className='active';
aDiv[this.index].className='show';
}
if(aBtn[i].className=='active') iNow=i;
}
function f(){
iNow++;
if(iNow==aBtn.length)iNow=0;
for(var i=0;i<aBtn.length;i++){
aBtn[i].className='';
aDiv[i].className='';
}
aBtn[iNow].className='active';
aDiv[iNow].className='show';
}
var timer=setInterval(f,1000);
oBox.onmouseover=function(){
clearInterval(timer);
}
oBox.onmouseout=function(){
timer=setInterval(f,1000);
}
相关推荐
配置文件详解:自定义属性、随机数、多环境配置等 配置文件详解:自定义属性、随机数、多环境配置等
js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数js随机数...
matlab数理统计和数据分析及优化求解:matlab数理统计随机数的产生.zip
matlab数理统计数据分析:26 数理统计随机数的产生(含教学视频).zip
VC++课程设计:用生成的随机数画统计图(折线,柱形,条形,饼图),内含详细的设计过程及实验报告,经测试能运行,建议还是自己动手做做,不要说没有时间,其实只要你自己动手做出一个,你就会发现它并不难,不懂得记得baidu
信息学奥赛一本通1184:明明的随机数
利用随机函数,产生随机数。隔N输出数。 利用随机函数,产生随机数。隔N输出数。
随机数随机数随机数随机数随机数随机数随机数随机数
js随机数js随机数js随机数
linux运维学习笔记:Shell生成随机数的方法
2.到widget.h文件中添加函数声明: protected: void timerEvent(QTimerEvent *); 然后添加私有变量定义: int id1, id2, id3; 3.下面到设计模式,向界面上拖入两个标签部件Label。 4.下面进入widget
A.4.3 定时器和随机数(WPF).zip
mentalmath-practice:生成两个随机数范围以练习心理数学
根据随机数自动生成验证码匹配
随机数生成函数 该函数的功能是生成一个随机数,可以连续调用
js随机数
不过经过俺的小小努力之后, 终于让俺摸着门道喽, 问题也就理所当然滴解决掉. 然后就写了个公式, 这样应该可以消失掉这个用法了, 公式: 1. 从1开始 至 任意值 linenum ... 演示2 (写成函数进行生成随机数操作) 1. 演示1
程序说明:系统随机给出一个0到99之间的两位数,玩者通过键盘输入一个数,系统判别输入数和随机数,然后给出大或小的提示,玩者在给定回合内继续输入直到得到该随机数为止