zoukankan      html  css  js  c++  java
  • JS变量

    • 变量的声明

        1.使用var多次声明同一个变量,是合法的,不会因此语法的错误;重复的声明并初始化变量值,只是相当于普通的赋值语句。

        2.读取一个未声明的变量值,js会产生一个错误。

        3.尝试给一个未经var 声明的变量赋值,js会隐式声明该变量,隐式声明的变量被创建为全局变量。

        4.无论是全局变量还是局部变量,最好都使用var进行声明。

    复制代码
              var i = 12;
    var i = 13; //相当于赋值语句 i = 13
    alert(i);
    k = 34; //隐式声明为一个全局变量
    alert(k);
    alert(j); //产生一个错误
    复制代码
    • 变量的作用域

      全局(global)变量的作用域是全局的,即在js代码中处处有定义。

      局部(local)变量的作用域是局部性的,只在特定的范围内,比如函数内部定义的变量,函数的参数变量,这些变量的作用范围是局限在函数的内部的。

      1.声明全局变量可以不适用var 关键字,局部变量则必须使用var关键字来声明,为了避免不必要的麻烦,养成所有的变量都使用var关键字来声明。

      2.变量的定义没有块级作用域

        在函数中声明的所有的变量,无论是在哪里声明的(只要是在函数内部),在整个的函数中都是有声明的

    复制代码
    function f(){
    for (var i=0;i<10;i++){ //此处i在for循环中的变量
    if(i==5){
    var k = 5; //此处k在if块中定义 
    break;
    }
    }
    alert("i=" + i + "----k =" + k);//只要是在函数内部的变量我们都可以使用它

    }
    复制代码

      引发思考的例子

    复制代码
        var scope = "global";
    function f2(){
    alert(scope); //提示undefined
    var scope = "local";
    alert(scope); //提示local

    }
    复制代码

      解析:第一次alert提示scope undefined ,而我们又定义了全局变量scope?????

         由于变量的定义没有块级作用域这个规则的限制,局部变量在整个函数内部都是有定义的,这就意味着整个函数体中都隐藏了同名的全局变量,

        第一次alert, 局部变量scope是已经被声明了,但是没有初始化值,所以提示undefined;

        而第二次的alert,是在scope = "local" 之后的,也就是局部变量scope完成了初始化,所以提示为local。

        该例子中的代码相当于

        

    复制代码
    var scope = "global";
    function f2(){
    var scope; //声明局部变量scope,未初始化
    alert(scope);
    scope = "local";//初始化scope
    alert(scope);

    }
    复制代码
    • 未定义的变量和未赋值的变量

      未定义的变量:指没有声明并且没有初始化的变量,尝试读取这种变量会产生一个错误。

           注: 这里要区分开没有声明但初始化了的变量,这种变量不会引起错误,程序会在全局变量中隐式的声明该类变量。

      未赋值的变量:指已经声明但没有初始化的变量,尝试读取该类变量将得到一个默认值undefined.

      

  • 相关阅读:
    thinkphp redis实现文章点赞功能并同步入mysql
    phpstorm2020.1最新版永久破解
    mysql修改sql_mode为宽松模式
    用为知发布博客到博客园、使用Wiz编写和发布博客园(cnblogs)博客
    Vim命令大全
    Vim教程
    GDB教程详解
    TCMalloc 对MYSQL 性能 优化的分析
    TCMalloc 安装和使用
    使用Tcmalloc进行堆栈分析
  • 原文地址:https://www.cnblogs.com/xyw521520/p/5376476.html
Copyright © 2011-2022 走看看