前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript基础学习--10 return、定时器基础

JavaScript基础学习--10 return、定时器基础

作者头像
用户1148399
发布2018-01-09 15:30:24
8030
发布2018-01-09 15:30:24
举报
文章被收录于专栏:web前端

Demos:   https://github.com/jiangheyan/JavaScriptBase

一、return

     1、返回值:数字、字符串、布尔、函数、对象({}、[]、元素、null)、未定义

     2、return值==fn();

代码语言:javascript
复制
function fn(a){
     return function (b){
              alert(a+b);      
          }
}
alert(fn())     //function (b){ alert(a+b);}
alert(fn(10)(20))     //30 

     3、所有函数默认返回值:undefined

     4、return后面所有代码不执行

二、arguments

     1、实参的集合

代码语言:javascript
复制
fn(1,2,3);
functon fn(){
     alert(arguments);     //[object arguments]          
     alert(arguments.length);
     alert(arguments[0]);
}

     2、当函数的参数个数无法确定时,用arguments

     3、arguments可读可写,arguments[0] = 123;

三、getComputedStyle、currentStyle     (只能获取,不能修改样式!!!

     1、获取计算机(浏览器)计算后的样式

          1.1     兼具复合样式(eg. background),所以最好不要用复合样式名词获取(可以获取单一样式),可以写成  id.getComputedStyle('backgroundColor');     // red |  rgb(xxx,xxx,xxx);     --->不要用此作为判断条件

          1.2     不要获取未设置的样式:因为不兼容(这是浏览器计算的值,每个浏览器计算方式都不一样)

          1.3     不要有空格

     2、window.getComputedStyle(id,canshu).width;     //IE6、7、8不兼容,标准浏览器兼容     //canshu是FF4.0以下中的bug(任何参数都行)

     3、id.currentStyle.width                        //标准浏览器不兼容,IE6、7、8兼容

     4、检测兼容性:

          4.1     版本检测法

          4.2     属性判断法

代码语言:javascript
复制
//getComputedStyle、currentStyle     并解决获取样式兼容性问题
 
if(id.currentStyle){     //属性判断法:判断是否认得该属性
     id.currentStyle.width;     
}else{
     id.getComputedStyle(id.width);
}

     5、获取行间样式(style属性只能获取行内样式)封装方法:(注意:不能用点操作法,只能用 [ ] 因为  js中允许所有(.)替换成(【】),且(.)后面的值无法修改(必须是非变量), )

代码语言:javascript
复制
function getStyle(obj, attr){
     return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr];     //null是兼容FF4.0以下中的bug
}
 
var width = parseFloat(getStyle(oItem, 'width'));     //获取到的是带PX单位的值,所以需要用parseFloat---->最后设置dom.style.width = width + 'px';     //注意单位的回加

注:dom.style.attr 只能获取行内样式,嵌入样式和外联样式不能用style属性获取!此时用getComputedStyle || currentStyle 

四、setInterval 定时器     重复执行

     1、setInterval( function, time);     //时间以毫秒为单位,最好大于14毫秒,太小没有意义,浏览器也没有这个快响应

     2、clearInterval(timer);     //timer是定时器名称

代码语言:javascript
复制
//清除定时器法一:
var timer = setInterval(function, time);
clearInterval(timer);
 
//清除定时器法二:
var timer = setInterval(function(){
     ......
     clearInterval(timer);
}, time);

     3、定时器如果是由事件调用(用户操作),那么原则:先关后开,预防用户多次快速点击造成定时器叠加产生的bug

代码语言:javascript
复制
var arrUrl = ['images/1.jpg', 'images/1.jpg', 'images/1.jpg'];
var num = 0;
var timer = null;
id.onclick = function(){
     clearInterval(timer);
     timer = setInterval(function(){
          id.style.backgroung = 'url('+arrUrl(num)+')';
          num++;
          num %= arrUrl.length;
     }, 1000);
}

     4、函数调用方式

          4.1     直接调用 fn();

          4.2     事件调用 id.onclick = fn;                    (不能加括号,加括号是自己主动就执行了)

          4.3     定时器调用 setInterval(fn, 1000);      (不能加括号,加括号是自己主动就执行了)

五、setTimeout     执行一次

     1、setTimeout(function, time);

     2、clearTimeout(timer);     //timer 是定时器名称

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-08-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档