zoukankan      html  css  js  c++  java
  • 使用var和不使用声明变量的区别

     

    相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:

    <script>
    var a = 1;
    b = 2;
    window.c = 3;
    </script>
    

      

    对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。

    var与不var有两个区别:

    1 var的全局变量不能被删除,因为delete只能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,delete不成功并不会抛错,delete的返回值是true|false。

    2 var定义的全局变量会被提升,而不用var定义的全局变量不会被提升。可以看下面程序的执行结果:

    <script>
    alert(a); // undefined
    var a=1;
    </script>
    

      

    <script>
    alert(a);//error, a undefined
    a=1;
    </script>
  • 相关阅读:
    SQL盲注攻击的简单介绍
    xss编码小结
    XssEncode
    xss payload
    2014年八大信息安全峰会演讲
    xss bypass
    移动APP安全在渗透测试中的应用
    WAF实现扫描器识别
    thinkphp的系统变量
    thinkphp AOP(面向切面编程)钩子和行为
  • 原文地址:https://www.cnblogs.com/daqianduan/p/4381685.html
Copyright © 2011-2022 走看看