1. Javascript 定时器

1.1 计时事件

  • 设定一个间隔,时间到了后准时执行代码,此为“计时事件”

1.2 作用

1、制作动画

2、异步操作

1.3 定时器的类型及语法

  • setInterval() 和 setTimeout() 是 Window 对象的两个方法
  1. /*
  2. 定时器:
  3. setTimeout 单次的定时器
  4. clearTimeout 关闭单次的定时器
  5. setInterval 多次的定时器
  6. clearInterval 关闭多次的定时器
  7. */
  8. function timeGoesBy(){
  9. console.log("Time flies by.");
  10. }
  11. var time1 = setTimeout(timeGoesBy, 5000);
  12. var time2 = setInterval(timeGoesBy, 500);
  13. setTimeout(function(){
  14. clearTimeout(time1);
  15. console.log("time1 has no chance to carry it out.");
  16. clearInterval(time2);
  17. console.log("time2 was executed 6 times.");
  18. }, 3000);
  • 运行结果
  1. Time flies by.
  2. time1 has no chance to carry it out.
  3. time2 was executed 6 times.

2. Javascript 函数

2.1 使用 function 语句定义函数

  1. function abc(){
  2. alert('abc');
  3. }

2.2 在表达式中定义函数

  1. /*
  2. 形式
  3. var 函数名 = function(参数1, 参数2, ...){函数体};
  4. */
  5. var add = function(a, b){
  6. return a+b;
  7. }
  8. // 调用函数
  9. document.write(add(50, 20));

2.3 arguments

  • 在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们

  • 例如,在函数 sayHi() 中,第一个参数是 message,用 arguments[0] 也可以访问这个值

  • 即,第一个参数位于位置 0,第二个参数位于位置 1,依此类推

  • 举例

  1. /* 1. 使用 function 关键字定义函数
  2. 此法优先级较高,不限调用地点
  3. JS 中没有默认值参数
  4. 小发现:把 console.log() 写成 print() 会调出打印机
  5. */
  6. function demo(a, b){
  7. console.log('a =', a, '\tb =', b)
  8. console.log(arguments);
  9. for(i in arguments){
  10. // console.log('i =', i, '\targuments[' + i + '] =', arguments[i]);
  11. console.log('i = %s\targuments[%s] = %d', i, i, arguments[i]);
  12. }
  13. console.log("函数被调用了!");
  14. }
  15. // demo(1, 2);
  16. // demo(); // 少传参数 -> undefined
  17. demo(1, 2, 3); // 多传参数 -> 多余的参数会被忽略
  18. };
  • 运行结果
  1. a = 1 b = 2
  2. Arguments(3)
  3. i = 0 arguments[0] = 1
  4. i = 1 arguments[1] = 2
  5. i = 2 arguments[2] = 3
  6. 函数被调用了!

2.4 关于变量和参数问题:

  • 函数外面定义的变量是全局变量,函数内可以直接使用

  • 在函数内部没有使用 var 定义的变量也是全局变量(限非严格模式)

  • 在函数内使用 var 关键字定义的变量是局部变量,即,出了函数会无效

  • 举例

  1. /* 1.
  2. 全局变量:在函数外部声明的变量
  3. 局部变量:在函数内部声明的变量
  4. */
  5. var g1 = 1;
  6. function demo1(){
  7. var l1 = 2;
  8. console.log('g1 = %d, l1 = %d', g1, l1);
  9. }
  10. demo1();
  11. console.log('g1 =', g1);
  12. // console.log('l1 =', l1); // 会报错
  13. // 2.1 小例子
  14. var g2 = 5;
  15. function demo2(){
  16. console.log('g2 =', g2);
  17. g2 = 10;
  18. console.log('g2 =', g2);
  19. }
  20. console.log('g2 =', g2);
  21. demo2();
  22. console.log('g2 =', g2);
  23. // 2.2 小例子
  24. var g3 = 5;
  25. function demo3(){
  26. console.log('g3 =', g3); // 一旦函数内部 var 了变量 n,那么函数中所有的 n 都变成了局部变量
  27. g3 = 10;
  28. console.log('g3 =', g3);
  29. var g3 = 15;
  30. console.log('g3 =', g3);
  31. }
  32. console.log('g3 =', g3);
  33. demo3();
  34. console.log('g3 =', g3);
  35. // 2.3 小例子
  36. function demo2(){
  37. l3 = 10; // 这里没使用 var,意为将 l3 视为全局变量(限非严格模式)
  38. console.log('l3 =', l3);
  39. }
  40. demo2();
  41. console.log('l3 =', l3); // 非严格模式下,函数内不用 var 声明的变量可以在函数外部使用
  42. };
  • 运行结果
  1. g1 = 1, l1 = 2
  2. g1 = 1
  3. g2 = 5
  4. g2 = 5
  5. g2 = 10
  6. g2 = 10
  7. g3 = 5
  8. g3 = undefined
  9. g3 = 10
  10. g3 = 15
  11. g3 = 5
  12. l3 = 10
  13. l3 = 10

[Web 前端] 024 js 的定时器及函数的更多相关文章

  1. Web前端-Vue.js必备框架(三)

    Web前端-Vue.js必备框架(三) vue是一款渐进式javascript框架,由evan you开发.vue成为前端开发的必备之一. vue的好处轻量级,渐进式框架,响应式更新机制. 开发环境, ...

  2. Web前端-Vue.js必备框架(五)

    Web前端-Vue.js必备框架(五) 页面组件,商品列表组件,详情组件,购物车清单组件,结算页组件,订单详情组件,订单列表组件. vue-router 路由 vuex 组件集中管理 webpack ...

  3. Web前端-Vue.js必备框架(四)

    Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...

  4. Web前端-Vue.js必备框架(二)

    Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...

  5. Web前端-Vue.js必备框架(一)

    Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  6. Web前端Require.js

    前言 前段时间粗略的扫过一次require.js,当时没怎么在意,结果昨天看到index里面的代码就傻了,完全不知道从哪开始看啦,所以require与backbone的学习还要加紧才行. 由于前端所占 ...

  7. 【RSA】在 ASP.NET Core中结合web前端JsEncrypt.JS使用公钥加密,.NET Core使用私钥解密;

    有一个需求,前端web使用的是JsEncrypt把后端给的公钥对密码进行加密,然后后端对其进行解密: 使用的类库如下: 后端使用第三方开源类库Bouncy Castle进行RSA的加解密和生成PEM格 ...

  8. js中定时器调用函数时为什么会有引号

    之前在学习的时候并没有发现的细节,关于js中,定时器的问题 这里我们写两个延时器 setTimeout(func, 0); setTimeout("func()", 0);定时器中 ...

  9. web前端----JavaScript(JS)函数

    函数 函数定义 JavaScript中的函数和Python中的非常类似,只是定义方式有点区别. // 普通函数定义 function f1() { console.log("Hello wo ...

随机推荐

  1. 风控MIS那些事

    信贷风险管理应基于数据进行决策,MIS则是通过对数据的加工与展示,给决策者提供参考. 管理信息系统(ManagementInformation System,MIS)是进行信息的 收集.传输.加工.储 ...

  2. 【leetcode】Largest Plus Sign

    题目如下: In a 2D grid from (0, 0) to (N-1, N-1), every cell contains a 1, except those cells in the giv ...

  3. lazarus 线程调试

    lazarus站点的文档中看到的.简单用法: uses  LCLProc; DbgOutThreadLog (msg: string);  overload;  --有好几个不同参数的定义.

  4. 参数上使用自定义注解在aop中无法获取到该参数

    https://ask.csdn.net/questions/769477 /** * 环绕增强,验证权限 * @param joinPoint 目标对象 * @param authCheck 自定义 ...

  5. java 上传大文件以及文件夹

    我们平时经常做的是上传文件,上传文件夹与上传文件类似,但也有一些不同之处,这次做了上传文件夹就记录下以备后用. 这次项目的需求: 支持大文件的上传和续传,要求续传支持所有浏览器,包括ie6,ie7,i ...

  6. WTL拖拽文件

    1.对话框属性中把:Accept Files设置为TRUE,或者ModifyStyleEx(0, WS_EX_ACCEPTFILES); 2.在对话框中添加一个ListBox控件,并关联成员变量:m_ ...

  7. 【转载】自动化运维系列之Cobbler给Openstack节点安装操作系统

    preface 我们在一篇博文知道了如何搭建Cobbler,那么下面就通过Cobbler来安抓Openstack所有节点吧. 服务器配置信息如下: 主机名 IP 角色 Cobbler.node.com ...

  8. WinRAR 常用变量列表

    %SystemDrive%操作系统所在的分区号.如   C:%SystemRoot%操作系统根目录.如 C:\WINDOWS%windir%操作系统根目录.如 C:\WINDOWS%ALLUSERSP ...

  9. Oracle生成ASH报告

    1.ASH (Active SessionHistory) ASH以V$SESSION为基础,每秒采样一次,记录活动会话等待的事件.不活动的会话不会采样,采样工作由新引入的后台进程MMNL来完成. v ...

  10. [CSP-S模拟测试]:最大异或和(数学)

    题目传送门(内部题81) 输入格式 第一行一个整数$T(T\leqslant 20)$,表示测试数据组数 接下来$T$组,对于每一组,第一行一个整数$n$ 第二行有$n$个整数,为$w_1,w_2.. ...