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 相关文章推荐
谈谈JavaScript中的函数与闭包
Apr 14 Javascript
javascript属性访问表达式用法分析
Apr 25 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
JavaScript对象创建模式实例汇总
Oct 03 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
Mar 29 Javascript
使用MUI框架模拟手机端的下拉刷新和上拉加载功能
Sep 04 Javascript
vue中实现methods一个方法调用另外一个方法
Feb 08 Javascript
使用taro开发微信小程序遇到的坑总结
Apr 08 Javascript
vux-scroller实现移动端上拉加载功能过程解析
Oct 08 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
Sep 21 Javascript
Vue实现图书管理案例
Jan 20 Vue.js
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
如何用phpmyadmin设置mysql数据库用户的权限
2012/01/09 PHP
CI框架中redis缓存相关操作文件示例代码
2016/05/17 PHP
Javascript 面向对象 继承
2010/05/13 Javascript
解决iframe的frameborder在chrome/ff/ie下的差异
2010/08/12 Javascript
javascript 保存文件到本地实现方法
2012/11/29 Javascript
textarea 控制输入字符字节数(示例代码)
2013/12/27 Javascript
原生js仿jquery animate动画效果
2016/07/13 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
Vue核心概念Getter的使用方法
2019/01/18 Javascript
Vue动态路由缓存不相互影响的解决办法
2019/02/19 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Vue实现图书管理案例
2021/01/20 Vue.js
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
2020/02/27 Python
python自动下载图片的方法示例
2020/03/25 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
如何表示python中的相对路径
2020/07/08 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
如何在python中处理配置文件代码实例
2020/09/27 Python
python性能测试工具locust的使用
2020/12/28 Python
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
会计电算化个人求职信范文
2014/01/24 职场文书
私人会所最新创业计划书范文
2014/03/24 职场文书
经典演讲稿汇总
2014/05/19 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
地球一小时活动总结
2015/02/27 职场文书
联谊会开场白
2015/06/01 职场文书
负责培养人意见
2015/06/05 职场文书
消防宣传标语大全
2015/08/03 职场文书
教育教学工作反思
2016/02/24 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS
Redis批量生成数据的实现
2022/06/05 Redis