[Web 前端] 024 js 的定时器及函数
1. Javascript 定时器
1.1 计时事件
- 设定一个间隔,时间到了后准时执行代码,此为“计时事件”
1.2 作用
1、制作动画
2、异步操作
1.3 定时器的类型及语法
- setInterval() 和 setTimeout() 是 Window 对象的两个方法
/*
定时器:
setTimeout 单次的定时器
clearTimeout 关闭单次的定时器
setInterval 多次的定时器
clearInterval 关闭多次的定时器
*/
function timeGoesBy(){
console.log("Time flies by.");
}
var time1 = setTimeout(timeGoesBy, 5000);
var time2 = setInterval(timeGoesBy, 500);
setTimeout(function(){
clearTimeout(time1);
console.log("time1 has no chance to carry it out.");
clearInterval(time2);
console.log("time2 was executed 6 times.");
}, 3000);
- 运行结果
⑥ Time flies by.
time1 has no chance to carry it out.
time2 was executed 6 times.
2. Javascript 函数
2.1 使用 function 语句定义函数
function abc(){
alert('abc');
}
2.2 在表达式中定义函数
/*
形式
var 函数名 = function(参数1, 参数2, ...){函数体};
*/
var add = function(a, b){
return a+b;
}
// 调用函数
document.write(add(50, 20));
2.3 arguments
在函数代码中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们
例如,在函数 sayHi() 中,第一个参数是 message,用 arguments[0] 也可以访问这个值
即,第一个参数位于位置 0,第二个参数位于位置 1,依此类推
举例
/* 1. 使用 function 关键字定义函数
此法优先级较高,不限调用地点
JS 中没有默认值参数
小发现:把 console.log() 写成 print() 会调出打印机
*/
function demo(a, b){
console.log('a =', a, '\tb =', b)
console.log(arguments);
for(i in arguments){
// console.log('i =', i, '\targuments[' + i + '] =', arguments[i]);
console.log('i = %s\targuments[%s] = %d', i, i, arguments[i]);
}
console.log("函数被调用了!");
}
// demo(1, 2);
// demo(); // 少传参数 -> undefined
demo(1, 2, 3); // 多传参数 -> 多余的参数会被忽略
};
- 运行结果
a = 1 b = 2
Arguments(3)
i = 0 arguments[0] = 1
i = 1 arguments[1] = 2
i = 2 arguments[2] = 3
函数被调用了!
2.4 关于变量和参数问题:
函数外面定义的变量是全局变量,函数内可以直接使用
在函数内部没有使用 var 定义的变量也是全局变量(限非严格模式)
在函数内使用 var 关键字定义的变量是局部变量,即,出了函数会无效
举例
/* 1.
全局变量:在函数外部声明的变量
局部变量:在函数内部声明的变量
*/
var g1 = 1;
function demo1(){
var l1 = 2;
console.log('g1 = %d, l1 = %d', g1, l1);
}
demo1();
console.log('g1 =', g1);
// console.log('l1 =', l1); // 会报错
// 2.1 小例子
var g2 = 5;
function demo2(){
console.log('g2 =', g2);
g2 = 10;
console.log('g2 =', g2);
}
console.log('g2 =', g2);
demo2();
console.log('g2 =', g2);
// 2.2 小例子
var g3 = 5;
function demo3(){
console.log('g3 =', g3); // 一旦函数内部 var 了变量 n,那么函数中所有的 n 都变成了局部变量
g3 = 10;
console.log('g3 =', g3);
var g3 = 15;
console.log('g3 =', g3);
}
console.log('g3 =', g3);
demo3();
console.log('g3 =', g3);
// 2.3 小例子
function demo2(){
l3 = 10; // 这里没使用 var,意为将 l3 视为全局变量(限非严格模式)
console.log('l3 =', l3);
}
demo2();
console.log('l3 =', l3); // 非严格模式下,函数内不用 var 声明的变量可以在函数外部使用
};
- 运行结果
g1 = 1, l1 = 2
g1 = 1
g2 = 5
g2 = 5
g2 = 10
g2 = 10
g3 = 5
g3 = undefined
g3 = 10
g3 = 15
g3 = 5
l3 = 10
l3 = 10
[Web 前端] 024 js 的定时器及函数的更多相关文章
- Web前端-Vue.js必备框架(三)
Web前端-Vue.js必备框架(三) vue是一款渐进式javascript框架,由evan you开发.vue成为前端开发的必备之一. vue的好处轻量级,渐进式框架,响应式更新机制. 开发环境, ...
- Web前端-Vue.js必备框架(五)
Web前端-Vue.js必备框架(五) 页面组件,商品列表组件,详情组件,购物车清单组件,结算页组件,订单详情组件,订单列表组件. vue-router 路由 vuex 组件集中管理 webpack ...
- Web前端-Vue.js必备框架(四)
Web前端-Vue.js必备框架(四) 计算属性: <div id="aaa"> {{ message.split('').reverse().join('') }} ...
- Web前端-Vue.js必备框架(二)
Web前端-Vue.js必备框架(二) vue调式工具vue-devtools 过滤器:vue.js允许你自定义过滤器,可被用作一些常见的文本格式化. mustache插值和v-bind表达式. vu ...
- Web前端-Vue.js必备框架(一)
Web前端-Vue.js必备框架(一) <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- Web前端Require.js
前言 前段时间粗略的扫过一次require.js,当时没怎么在意,结果昨天看到index里面的代码就傻了,完全不知道从哪开始看啦,所以require与backbone的学习还要加紧才行. 由于前端所占 ...
- 【RSA】在 ASP.NET Core中结合web前端JsEncrypt.JS使用公钥加密,.NET Core使用私钥解密;
有一个需求,前端web使用的是JsEncrypt把后端给的公钥对密码进行加密,然后后端对其进行解密: 使用的类库如下: 后端使用第三方开源类库Bouncy Castle进行RSA的加解密和生成PEM格 ...
- js中定时器调用函数时为什么会有引号
之前在学习的时候并没有发现的细节,关于js中,定时器的问题 这里我们写两个延时器 setTimeout(func, 0); setTimeout("func()", 0);定时器中 ...
- web前端----JavaScript(JS)函数
函数 函数定义 JavaScript中的函数和Python中的非常类似,只是定义方式有点区别. // 普通函数定义 function f1() { console.log("Hello wo ...
随机推荐
- ESP8266-Station模式--我想连上谁
Station模式又叫做站点工作模式,类似于无线终端 处于Station模式下的ESP8266,可以连接到AP.通过Station(简称为“STA”)模式,ESP8266作为客户端连接到路由的wifi ...
- vue项目刷新页面,使数据不丢失(sessionStorage、localStorage、cookie)
vue项目刷新页面时,存储在vuex中的数据会丢失,把他们存到stroage中可以保证不丢失.
- vue2.0关于添加属性后视图不能更新的问题
属性赋值和this.$set 和vue.$set方法我不行 可以用 this.$delete来进行删除后在设置都可以了
- 对MySQL binlog日志解析,统计每张表的DML次数
想要获取每天数据库每张表的DML的次数,统计热度表,可以使用该脚本 # coding:utf-8 # 解析binlog,统计热度表,表的DML个数 import sys import os # mys ...
- 实战build-react(四)一个模块的进化过程
主框架结构 home/index.js //模块主文件 创建Topic模块 阶段一 基础代码 import React, { Component } from 'react'; import ...
- (知识)width、naturalWidth、clientWidth、offsetWidth区别整理
今天在做图片裁剪功能的时候,参考了下网友的资料,发现大家对图片宽度的获取方式不尽相同,于是详细整理下各个属性的区别(详细请参考MDN). 1,HTMLImageElement.width是一个unsi ...
- [ git ] eclipse如何与git 配合工作。
原文链接http://blog.csdn.NET/yangzhihello/article/details/11003941 呵呵,看看这个吧.先去安装eclipse.然后在现在 egit,应该可以从 ...
- association实现懒加载分段级联查询
这里讲的是人员和部门进行级联分布查询 1.首先在mybatis-config.xml里进行配置 <settings> <!--显示的指定每个我们需要更改的配置的值,即使他是默认的.防 ...
- 一、Robotframework安装步骤
1.安装python并验证安装成功 a.安装python-2.7.14.amd64------默认路径安装即可 b.添加环境变量path:C:\Python27; C:\Python27\Script ...
- VS2010护眼界面(护眼绿)
工具-->选项 RGB(204.232.207) “选择菜单[工具][导入和导出设置], 在弹出的“导入和导出设置向导”对话框中选择“导入选定的环境设置”, 然后根据自己的实际情况选择“是,保存 ...