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


Posted in Javascript onDecember 09, 2013

相信你对全局变量一定不陌生,在函数作用域里用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);
var a=1;
</script>

<script>
alert(a);//error, a undefined
a=1;
</script>
Javascript 相关文章推荐
js一组验证函数
Dec 20 Javascript
jQuery的初始化与对象构建之浅析
Apr 12 Javascript
node.js中的querystring.parse方法使用说明
Dec 10 Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 Javascript
全面了解构造函数继承关键apply call
Jul 26 Javascript
最好用的Bootstrap fileinput.js文件上传组件
Dec 12 Javascript
Bootstrap如何激活导航状态
Mar 22 Javascript
Vue表单验证插件的制作过程
Apr 01 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
jQuery ajax调用webservice注意事项
Oct 08 jQuery
JavaScript中发出HTTP请求最常用的方法
Jul 12 Javascript
Vue的Options用法说明
Aug 14 Javascript
jquery div拖动效果示例代码
Dec 08 #Javascript
jquery垂直公告滚动实现代码
Dec 08 #Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 #Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 #Javascript
jqplot通过ajax动态画折线图的方法及思路
Dec 08 #Javascript
JavaScript 32位整型无符号操作示例
Dec 08 #Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 #Javascript
You might like
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
2016/10/20 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
2017/09/20 PHP
详解PHP字符串替换str_replace()函数四种用法
2017/10/13 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP之header函数详解
2021/03/02 PHP
javascript数组的扩展实现代码集合
2008/06/01 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
详解JavaScript的变量和数据类型
2015/11/27 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
深入理解JavaScript中Ajax
2016/08/02 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
webpack的 rquire.context用法实现工程自动化的方法
2020/02/07 Javascript
javascript中innerHTML 获取或替换html内容的实现代码
2020/03/17 Javascript
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
python 动态加载的实现方法
2017/12/22 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python 函数内部修改外部变量的方法
2018/12/18 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
2019/10/25 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
tensorflow常用函数API介绍
2020/04/19 Python
Python 如何创建一个简单的REST接口
2020/07/30 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
毕业生简单求职信
2013/11/19 职场文书
社会体育专业大学生职业生涯规划书
2014/09/17 职场文书
《植树问题》教学反思
2016/03/03 职场文书