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 相关文章推荐
DLL+ ActiveX控件+WEB页面调用例子
Aug 07 Javascript
基于jquery的表格排序
Sep 11 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
Jun 28 Javascript
js操作iframe兼容各种主流浏览器示例代码
Jul 22 Javascript
js获取日期:昨天今天和明天、后天
Jun 11 Javascript
javascript常见数字进制转换实例分析
Apr 21 Javascript
javascript实现的左右无缝滚动效果
Sep 19 Javascript
JavaScript中利用构造器函数模拟类的方法
Feb 16 Javascript
js实现PC端根据IP定位当前城市地理位置
Feb 22 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
May 04 Javascript
vue实现分页栏效果
Jun 28 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
CI框架中cookie的操作方法分析
2014/12/12 PHP
javascript实现漂亮的拖动层,窗口拖拽特效
2015/04/24 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
比较常见的javascript中定义函数的区别
2015/11/09 Javascript
vue制作加载更多功能的正确打开方式
2016/10/12 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
vue实现公共方法抽离
2020/07/31 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
Python常用正则表达式符号浅析
2014/08/13 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
Python连接PostgreSQL数据库的方法
2016/11/28 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
python使用pandas抽样训练数据中某个类别实例
2020/02/28 Python
python 如何将office文件转换为PDF
2020/09/22 Python
css3圆角样式分享自定义按钮样式
2013/12/27 HTML / CSS
日语专业推荐信
2013/11/12 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
社区科普工作方案
2014/06/03 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
班级班风口号大全
2015/12/25 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS