前端基础-07-函数及作用域

来源:互联网 发布:python中execute 编辑:程序博客网 时间:2024/04/29 19:36

函数及作用域

1.函数的使用

#有名函数定义函数:function fn() {    var box = document.getElementById("box");    box.innerHTML = "Java";} //函数定义 可以在定义前加括号执行,也可以在定义后加括号执行#第一种调用方式:fn();#第二种调用方式:document.onclick = function () {    alert(1);}# 匿名函数    没有名字的函数    匿名函数不能单独出现 一般充当事件函数        document.onclick = function () {           alert(1);        }#函数表达式:特点:可以在后面加括号立即执行() + - ! ~ 可以将匿名函数变为函数表达式#第一种:var fn = function () {    alert(1);};//通过var 的函数,只能在后面运行fn();#第二种:(function () {    alert(1);})();#第三种:(function () {    alert(1);}());#第四种:+function () {  //可以使用+ 、-、!、~    alert(1);}();

2.形参和实参

# 形参和实参fn(20);//实参function fn(x) {//形参    alert(x);}#多个参数 实参和形参个数不一定非得一样,但是不一样的时候要注意一一对应的关系sum( 20 , 30);#传入参数少了,运算会返回NaN,未传的参数值是undefinedfunction sum( x , y ,z) {    //一个函数里面,形参不要重复,也不要和内部var定义的变量重复    alert( x +y+z );}#参数少了,设置默认值sum( 20 , 32 );#传入参数少了function sum( x , y , z) {    //给形参设置默认值    x = x || 0;    y = y || 0;    z = z || 0;    alert(z);    alert(x+y+z);}

3.不定参数

sum(1, 2, 3, 4, 5, 6, 7, 8, 9);//实参function sum(r, t) {//和有没有形参没关系    //不定参 arguments,存储着所有 实参的集合    var x = 0;    var len = arguments.length;//    for (var i = 0; i < len; i++) {        x += arguments[i];    }    alert(x);}

4.return 返回

函数未写return值,默认返回 的是 undefinedfunction fn() {    var box = document.getElementById("box");    box.innerHTML = "java";//过程    return box;}var x = fn();alert(x);

5.JS作用域

#JavaScript代码运行,先解析在运行    1.(定义)解析顺序:var > function> 参数    a.var只定义变量,后面的=赋值不解析    b.函数只定义函数,函数的代码块不执行    c.重名的只留一个,var 和函数重名  函数优先    2.(运行)从上至下执行代码#案例1:    alert(a)  #未定义变量a,脚本运行报错#案例2:alert(b)  #此时b未赋值,只是解析了变量b,运行结果是undefinedalert(a)#此时解析了函数,运行返回的是函数体var a=function (b) {  #先解析var命名的变量a,在解析function,在解析方法体里面参数    alert("1")    return b}var  b=5  #b赋值了alert(b)  #运行结果返回是5
原创粉丝点击