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


<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+"  ");
    }
    document.write("脚本1:i= "+i+"  ");//【结果:】10;能够访问上面for内部声明的变量
script>

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

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

你可能感兴趣的:(❸JavaEE,----,----③JavaScript,javascript,全局变量,局部变量,匿名函数)