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编程起步(第一课)
Jan 10 Javascript
javaScript基础语法介绍
Feb 28 Javascript
JavaScript编写推箱子游戏
Jul 07 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
May 17 Javascript
全面解析Javascript无限添加QQ好友原理
Jun 15 Javascript
js中的面向对象入门
Mar 06 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
Mar 09 Javascript
详解vue.js之props传递参数
Dec 12 Javascript
vue+element-ui集成随机验证码+用户名+密码的form表单验证功能
Aug 05 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 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
ZF等常用php框架中存在的问题
2008/01/10 PHP
php checkbox 取值详细说明
2010/08/19 PHP
Views rows style模板重写代码
2011/05/16 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
2015/04/08 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
Javscript调用iframe框架页面中函数的方法
2014/11/01 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
你知道setTimeout是如何运行的吗?
2016/08/16 Javascript
javascript基础知识讲解
2017/01/11 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
解决vue 按钮多次点击重复提交数据问题
2018/05/10 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
python连接MySQL数据库实例分析
2015/05/12 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
2016/05/16 Python
matplotlib简介,安装和简单实例代码
2017/12/26 Python
Python函数中的可变长参数详解
2019/09/12 Python
使用python turtle画高达
2020/01/19 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
如何利用Python matplotlib绘制雷达图
2020/12/21 Python
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
大唐面试试题(CPU,UNIX等等)
2012/01/11 面试题
质检部部长职责
2013/12/16 职场文书
旅游项目开发策划书
2014/01/18 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题