源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Javascript全局变量var与不var的区别深入解析

  • 时间:2020-08-27 11:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Javascript全局变量var与不var的区别深入解析
相信你对全局变量一定不陌生,在函数作用域里用a=1这种形式定义的变量会是一个全局变量,在全局作用域里,用下面3种形式都可以创建对全局可见的命名:
[u]复制代码[/u] 代码如下:
<script> var a = 1; b = 2; window.c = 3; </script>
对于b=2这种方式, 它其实和c是一样的,在执行这个赋值语句的时候,会沿着作用域链寻找名字叫做b的变量,一直找到作用域链的顶端还没有找到,于是给window添加一个属性b然后赋值。 [b]var与不var有两个区别:[/b] 1 var的全局变量不能被删除,因为delete智能删除对象的可删除的属性,而通过var 定义的全局属性会被标明不可删除。需要说明的是,delete不成功并不会抛错,delete的返回值是true|false。 2 var定义的全局变量会被提升,而不用var定义的全局变量不会被提升。可以看下面程序的执行结果:
[u]复制代码[/u] 代码如下:
<script> alert(a); var a=1; </script>
[u]复制代码[/u] 代码如下:
<script> alert(a);//error, a undefined a=1; </script>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部