发表于: 2016-08-30 00:02:00

0 2153


今天的任务:熟悉js的作用域。

    收获: 块级作用域与函数作用域:

        块级作用域:   

                任何一对花括号中的语句都属于一个块。这里米娜定义的所有变量在代码块外都是不可见的

                (简单的理解为用{}括起来的称为块级作用域)。

        函数作用域:

                定义在函数中的参数和变量在函数外部是不可见的。

       好像这两者很相似。如何区分呢?

       由于js属于弱类型的语言是没有块级作用域的(初级可以简单这么理解)。

       那c语言的例子来说:

       #include<studio.h>

       voin main()

       {

          int i=2;

          i--;

         if(i)

          {

            int j=3;

          }

          printf("%d/n",j);

        }

      这个函数输出会报错,找不到变量j;

       因为j实在if语句里面声明的 j是包含在if{}里面的

      所以if语句执行完后 变量j就会消失。

     在js中:

      function text()

      {

        for(var i=0;i<3;i++){};

        alert(i);

      }

     test();   //3;

    为什么在块外定义变量i仍然可以访问。

    其实 js并不支持块作用域,只支持函数作用域。

       


返回列表 返回列表
评论

    分享到