zoukankan      html  css  js  c++  java
  • JavaScript 学习-变量的作用域和块级作用域

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>无标题文档</title>
    </head>
    
    <body>
    
    <script type="text/javascript">
    /*
    **JAVASCRIPT变量作用域
    function add(a, b){
            var sum = a+b;
            return sum;
        };
        
        var rs = add(2,3);
        console.log(rs);
        console.log(sum);    //因为这个sum在函数中是的作用域是add函数域,在函数外是没有办法使用的,所以这个
                        //sum在外部使用的时候是没有定义过的;故会输出这个sum是没有定义的;
    
    
        function add(a,b){
                sum  = a+b;        //在这个函数中sum被隐式的声明成了全局变量故是windows对象的变量,在外部是可                                                     //以使用的;
                return sum;
            }
            
            var rs = add(2,3);
            console.log(rs);
            console.log(sum);
            */
            
    //没有块级作用域
    
    var a= 8;
    var foo = function(){
            console.log(a); // 
            var a = 5;
            console.log(a);
        };        
        
        foo();
        /*
            输出的结果:
            undefined
            5
            结论:由foo函数的内的console.log(a)可以知道,在javascript中是没有块级作用域的,这和c/C++或是
            别的一些语言有所不同的。如果在c/c++中使用如下的代码是没有任何的问题的,
            代码如下:
            #include "stdio.h"
            int i = 109;    //这是i是全局变量
            
            void foo(){
                printf("这个i变量是全局的变量%d
    ",i);
                int i = 4;    //这个i是局部变量
                printf("函数中的定义的的i变量%d
    ",i);
            }
            void main(){
                foo();
            }
            /*输出结果
            109
            函数中的定义的的i变量4
            Press any key to continue
            因为局部变量在整个函数foo()内都有定义的,整个函数中隐藏了全局变量。虽然局部变量在整个函数体中有定义的,但在var语句之后,所以不会被初始化。所以最好在函数的顶部声明函数中所有用到的变量
        */
        
            
        
    </script>
    </body>
    </html>
  • 相关阅读:
    codevs 2010 求后序遍历
    code vs 1013 求先序排列
    codevs 3143 二叉树的序遍历
    codevs 3083 二叉树
    找树的根和孩子
    1501 二叉树最大宽度和高度
    1758:二叉树
    sql 如何把查询得到的结果如何放入一个新表中
    2011的n次方
    计算2的N次方
  • 原文地址:https://www.cnblogs.com/flay/p/3549117.html
Copyright © 2011-2022 走看看