【JavaScript】(5)匿名函数的定义方式、变量的作用域(局部变量,全局变量)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JavaScript语言基础---函数细节</title>
    </head>
    <body>
        <input type="button" onclick="demo(); " value="执行函数" >
        <input type="button" onclick="demo2(); " value="执行函数2" >
        <input type="button" onclick="demo3(); " value="执行函数3" >

<script type="text/javascript">
    //1、函数的空返回值
    function hello(){
        alert("hello ! ");
    }
    function demo(){
        alert( hello );//【结果:输出函数对象hello的toString()--也就是函数定义的特征串】
        alert( hello() );/*【结果:①hello()函数正常执行--弹出“helo ! ” 
                                                ②hello()函数返回值类型为空,alert( .toString() );
                                                此时结果为undefined 】*/
    }
</script>

<script type="text/javascript">
    //2、匿名函数
    /*2.1匿名函数过渡:
    ----【结论:】由此例得,函数引用abc可以由整个函数体代替,可以写成匿名的格式:
    var add=function(a,b){ return a+b; }; */
    function abc(a,b){
        return a+b;
    }
    var add=abc;//函数对象的引用赋值
    function demo2(){
        alert( add(1,2) );
        alert( add(10,20) );
    }
</script>

<script type="text/javascript">
    /*2.2、匿名函数的使用演示:
    ---- 【注意:】以后我们对页面组件的事件赋予动作时,通常采用匿名函数的方式赋*/
    function demo3(){
        var btn1=document.getElementsByTagName("input")[0];//获取第一个按钮对象
        btn1.onclick=function(){
            alert("okok....");
        };
    }
</script>

<script type="text/javascript">
    /*3、变量的作用域1:
    ----【结论:全局变量】在js中,一个变量定义之后,它的作用域不是一大括号来区分的,
    不但在本段脚本有效,而且在整个页面的脚本片段中都是有效的,此概念叫全局变量。
    */
    for(var i=0;i<10;i++){
        document.write("i= "+i+"&nbsp;&nbsp;");
    }
    document.write("脚本1:i= "+i+"&nbsp;&nbsp;");//【结果:】10;能够访问上面for内部声明的变量
</script>

<script type="text/javascript">
    document.write("脚本2:i= "+i+"&nbsp;&nbsp;");//【结果:】10;能够访问其他脚本中的变量
</script>

<script type="text/javascript">
    /*3、变量的作用域2:
    ----【结论:局部变量】在函数中定义的变量是局部变量,在函数外部是不能访问的。
    ----【注意:一个细节】一个变量若声明但没有赋值,它的值是undefined(由js默认帮我们初始化)
            如果一个变量没有定义就使用,语法是挂的。*/
    function show(){
        var x=6;
        x++;
    };
    document.write("x= "+x+"<br/>;");//WA:因为x变量没有定义,函数中定义的是局部变量,在这里访问不到。
</script>

<script type="text/javascript">
    /*3、变量的作用域3:
    ----【结论:形参是局部变量,实参是全局变量,作用域不同,形参不改变实参的值】
    */
    var y=2;//全局变量
    function change(y){//形参【注意】形参y是局部变量,它的改变不会影响后边的实参。
        y=y+1;
        alert(y);//3
    }
    change(y);//实参
    document.write("y= "+y);//2
</script>
    </body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值