• 剖析javascript全局变量和局部变量


    首先要记住:

    javascript是弱类型语言,它只有一种变量类型(var),为变量赋值时会自动判断类型并进行转换。

    全局变量和局部变量如何声明?

    全局变量声明:

    第一种方式(函数外)

    var a; //声明了a,但是没有给a赋值(undefined)

    b; //没有声明b,报错

    c = 1; //声明了c,并给c赋值1

    第二种方式(函数内)

    a = 1; //声明了a,给a赋值1

    b; //没有声明b,报错

    局部变量声明:

    只有一种方式(函数内)

    var a; //声明了a,但是没有给a赋值(undefined)

     

    全局变量与局部变量的作用域?

    众所周知,全局变量作用于全局区域,局部变量只作用于函数内部。但是这里需要注意的是如果函数内部声明的变量与全局变量重名,那么在函数内执行的时候将会把该变量当作局部变量,在函数体外仍作为全局变量。

    例如:

    var a = 1;
    function test(){
    var a = 2;
    alert(a) //a=2
    } 
    alert("全局区域的()a:"+a); //a=1

    这里要提到:Javascript在执行前会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域

    例如:

    var a = 1; //全局变量
     function test3(){
            alert(a); //undefined
           var  a = 3; //初始化局部变量
            alert("test3()中的a:"+a);  //test3()中的a:3
     } 

    所以在执行test3()函数之前,里面的a变量已经变成了局部变量。

     

  • 相关阅读:
    话题: 工人重度烧伤 厂方疑暗示“安乐死”后再赔偿
    Linux下使用mail命令发送邮件
    跨境电商优秀网站
    smarty模版使用php标签,如何获取模版变量
    弹窗效果处理和改进
    Keepalived + MySQLfailover + GTIDs 高可用
    linux的常用命令
    linux简单介绍,helloworld,vi使用,用户管理
    linux语言设置i18n(转)
    丢手帕问题
  • 原文地址:https://www.cnblogs.com/liuyanhao/p/5300006.html
Copyright © 2020-2023  润新知