JS 基础知识3 变量

变量和数值相关,它储存了那个值,有了变量就可以储存操作数据了。

js与其他语言不同,它是非类型的。就是变量可以存放任何类型的值,而其他语言需要存放特定类型的值。

var i=5;

i="fdsfad";

这是合法的。

变量的声明一般是由VAR 关键字声明的

var i,sum; //一次声明两个变量,   若变量没有给定初始值,则值为“undefined”

在JS中多次声明同一个变量,是不会出错的,仅仅是给变量赋值的性质。

还有一种,不用var关键字声明变量,则JS会隐式的声明该变量,并且为全局变量。

变量的作用域:

分为全局变量和局部变量。

全局变量就是在整个JS代码中,处处都有其定义,处处都可以使用。

而局部变量,一般在一个函数体中定义,只能在函数体中局部使用,外部不可用,参数同样也是局部变量。

看到这里,我们更要注意变量的声明,如果在函数内部声明变量,不用关键字var ,它就是全局的变量,如果变量名与外部变量名一样,则修改其中的值

       var s = "sssss";
       function check() {
          // var s = "dddddd";    //加VAR 则是局部变量   对外部s影响
           s = "dddddd";    //无VAR 则是全局变量,对外部全局变量S有影响
           document.write(s + "<br>");
            f = "fffffffff";      //全局变量
            document.write(f+"<br>");

        }
        check();
        document.write(s + "<br>");
        document.write(f);

输出:dddddd
fffffffff
dddddd
fffffffff

这些是我们要注意的var声明的使用。

在JS中没有块级定义域。

就是说在函数中声明的所有变量,无论在哪里声明,在整个函数中都是有定义的。

 function test(a) {
                var i = 0;
                if (a == 0) {
                    var j = 0;
                    for (var k = 0; k < 10; k++) {
                        document.write(k);    //0-9
                    }
                    document.write(k);       //10
                }
                document.write(j);        //0
 }
          test(0);
  var scop = "alls";
            function test1() {
                alert(scop);           //输出undefined
                var scop = "local";
                alert(scop);         //输出local
            }
            test1();
 

由于局部变量在整个函数体内部 都是有定义的,意味着整个函数体中都隐藏了同名的全局变量,其实是与下面函数一样的。
 var scop = "alls";
            function test2() {
               var scop;
                 alert(scop);           //输出undefined
                scop = "local";
                alert(scop);         //输出local
            }
            test2();
             

 

这个我们要了解变量作用域,还有知道js函数中没有块级作用域

JS 基础知识3 变量,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。