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

函数及作用域

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,未传的参数值是undefined

function 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值,默认返回 的是 undefined
function 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,运行结果是undefined
alert(a)#此时解析了函数,运行返回的是函数体
var a=function (b) {  #先解析var命名的变量a,在解析function,在解析方法体里面参数
    alert("1")
    return b
}
var  b=5  #b赋值了
alert(b)  #运行结果返回是5
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值