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禁止document element对象选中文本实现代码
Mar 21 Javascript
Js+Jq获取URL参数的集中方法示例代码
May 20 Javascript
JavaScript 实现打印,打印预览,打印设置
Dec 30 Javascript
javascript实现简单的贪吃蛇游戏
Mar 31 Javascript
微信小程序中多个页面传参通信的学习与实践
May 05 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
React Native 集成jpush-react-native的示例代码
Aug 16 Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 Javascript
js 图片转base64的方式(两种)
Apr 24 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
Jun 19 Javascript
Node.js原生api搭建web服务器的方法步骤
Feb 15 Javascript
详解uniapp的全局变量实现方式
Jan 11 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
linux下编译安装memcached服务
2014/08/03 PHP
php使用mysqli向数据库添加数据的方法
2015/03/20 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
用js实现控制内容的向上向下滚动效果
2007/06/26 Javascript
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
js函数setTimeout延迟执行的简单介绍
2013/07/17 Javascript
JS交换变量的方法
2015/01/21 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
2016/11/29 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
JS重学系列之聊聊new操作符
2019/03/04 Javascript
layui的select联动实现代码
2019/09/28 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
python_opencv用线段画封闭矩形的实例
2018/12/05 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
Python模拟伯努利试验和二项分布代码实例
2020/05/27 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
ProBikeKit英国:在线公路自行车之家
2017/02/10 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
单身旅行者的单身假期:Just You
2018/04/08 全球购物
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
经管应届生求职信
2013/11/17 职场文书
大学生的应聘自我评价
2013/12/13 职场文书
安全生产实施方案
2014/02/23 职场文书
政府法律服务方案
2014/06/14 职场文书
研究生导师推荐信
2014/09/06 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
教师学习十八届五中全会精神心得体会
2016/01/05 职场文书
基于CSS3画一个iPhone
2021/04/21 HTML / CSS