函数
(一)函数的定义与使用
1、函数是把一堆重复的代码进行封装,在我们需要用的时候直接调用就可以了
2、作用:代码重复调用
3、定义:
function 函数名() {
函数体----- 它就是重复的代码
};
4、对象中的函数方法(一般称为对象的方法)
var dog = {
color: '白色的',
age: 2,
bark: function() {
console.log('汪汪汪');
}
}
调用对象中的方法:dog.bark();
5、变量和函数声明整体提前
这时打印变量,值为undefined
这时调用函数,值为函数体,函数正常运行
add();//函数声明整体提升,值为函数体,函数正常运行
console.log('str的值是',str); // 变量声明提升,值为undefined
function add() {
var num1 = 100;
var num2 = 20;
var sum = num1 + num2;
console.log(sum);
}
var str = '123456';
6、总结
1、函数要先定义,才能调用
2、函数的命名:要遵行驼峰式命名方法
3、函数命名一旦一样,后面的会覆盖前面的
(二)函数调用方式
-
手动调用
function sum() {
var count = 0;
for (var i=0;i<=100;i++) {
count += i;
}
console.log(count);
}
// 手动调用
sum();
-
事件绑定调用
<input type="text" onkeydown="sum();"> //键盘点击事件
(三)函数传递参数
调用时传入的数据,要跟形式参数一一对应
参数:在函数定义时,函数后面的小括号里面的变量就是参数,目的是函数在调用的时候对用户传进来的值进行操作
形式参数
实际参数
(四)函数返回值return
- 使用return返回计算结果
// 需求: 计算两个数相加的结果,并返回给调用者
function add(num1, num2) {
var sum = num1 + num2;
return sum;
}
var sum = add(10,10);
- 没写return,默认返回undefined
// 把两个数相加的结果显示在页面上
function add2(num1, num2) {
var sum = num1 + num2;
// 没有return时,默认返回undefined
document.write(sum);
}
var sum2 = add2(20,30);
console.log(sum2);
(五)作用域
1、作用域:变量和函数可被访问的范围
2、window是全局作用域,在全局作用域下声明的变量为(全局变量)
3、在局部作用域下声明的变量为(局部变量)
4、规则:
函数内部可以访问函数外部的变量
函数外部不可以访问函数内部的变量
-
作用域用作用域链进行连接
作用域链:保证对执行环境有权访问变量和函数的有序访问
例如:函数嵌套,最里面的函数权限最大,可以访问自己的和外面的,外面却不能访问里面的没有块极作用域(区分作用域以从函数作为区分条件)
-
任何一对花括号中的语句集都属于一个块,在这之中定义的所有变量在代码块外都是不可见的,我们称之为块级作用域,而Java Script中没有块极作用域
-
在form表单中,默认<btuuon></button>标签为提交按钮,点击时会刷新页面,给button标签添加type 值为button,就可以变成单纯按钮使用