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 相关文章推荐
优化Jquery,提升网页加载速度
Nov 14 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
Mar 02 Javascript
Jquery实现textarea根据文本内容自适应高度
Apr 03 Javascript
JS+CSS实现精美的二级导航效果代码
Sep 17 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
May 26 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
JS中Swiper的使用和轮播图效果
Aug 11 Javascript
sublime text配置node.js调试(图文教程)
Nov 23 Javascript
用react-redux实现react组件之间数据共享的方法
Jun 08 Javascript
小程序显示弹窗时禁止下层的内容滚动实现方法
Mar 20 Javascript
Vue学习之常用指令实例详解
Jan 06 Javascript
微信小程序的引导页实现代码
Jun 24 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
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
php筛选不存在的图片资源
2015/04/28 PHP
js不是基础的基础
2006/12/24 Javascript
javascript入门·对象属性方法大总结
2007/10/01 Javascript
javascript cookies 设置、读取、删除实例代码
2010/04/12 Javascript
再论Javascript的类继承
2011/03/05 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
vue事件修饰符和按键修饰符用法总结
2017/07/25 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
javascript实现自由编辑图片代码详解
2019/06/21 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
详解React 条件渲染
2020/07/08 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
Python字符串的修改方法实例
2019/12/19 Python
如何基于python实现脚本加密
2019/12/28 Python
tensorflow中tf.reduce_mean函数的使用
2020/04/19 Python
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
实验室标语
2014/06/21 职场文书
公司员工活动策划方案
2014/08/20 职场文书
酒店端午节活动方案
2014/08/26 职场文书
企业工会工作总结2015
2015/05/13 职场文书
亮剑观后感500字
2015/06/05 职场文书
关于环保的广播稿
2015/12/17 职场文书
导游词之上海东方明珠塔
2019/09/25 职场文书
Python实现仓库管理系统
2022/05/30 Python