美文网首页
javaScript中的变量和变量作用域及一些个人的见解

javaScript中的变量和变量作用域及一些个人的见解

作者: 爱讲鸡汤的油腻大叔 | 来源:发表于2019-07-18 11:50 被阅读0次

    JavaScript中的变量类型

    一、数
    二、字符串
    三、布尔值
    四、函数
    五、对象
    六、undefined
    七、null
    八、数组
    九、日期
    十、正则表达式

    其中对于undefined和null的区别

    undefined是变量已经被声明,但是未获得初始化值,如:

    const val
    console.log(val)     =>   undefined
    

    null表示 该变量指向一个不存在的对象或地址,null类型为一个全局对象

    image.png

    此外,在基础数学运算中,null值将被转换为0

    关于undefined和null的共同点

    undefinednull取反之后均为true

    console.log(!undefined)   =>  true
    console.log(!null)  =>  true
    

    变量作用域

    变量可以分为全局变量和局部变量

    全局变量在全局都有效
    局部变量仅在该变量所在代码块及其子代码块有效

    var variable = 'global'
    myVariable = 'global'
    
    function   var_fun(){
      var variable  = 'local'
      return variable  
    }
    
    function  my_var_fun(){
      myVariable = 'local'
      return myVariable 
    }
    
    console.log(variable)                (1)
    console.log(var_fun())               (2)
    console.log(variable)                (3)
    console.log(myVariable)              (4)
    console.log(my_var_fun())            (5)
    console.log(myVariable)              (6)
    

    分析

    (1)因为variable是一个全局变量,所以输出global
    (2)myVariable是在var_fun声明的局部变量,所以作用域仅在var_fun内,输出local
    (3)仍然输出globalvar_fun中的myVariable为局部变量,仅在var_fun代码块生效,所以这里输出的是全局的myVariable
    (4)myVariable没有使用变量关键字修饰,默认为全局变量,输出global
    (5)在my_var_fun内,因为没有使用变量关键字修饰,所以这里引用的是全局定义的myVariable,输出global
    (6)在(5)中,myVariable被引用并修改,所以输出local

    相关文章

      网友评论

          本文标题:javaScript中的变量和变量作用域及一些个人的见解

          本文链接:https://www.haomeiwen.com/subject/jtoclctx.html