javascript定义变量时有var和没有var的区别探讨


Posted in Javascript onJuly 21, 2014

我们先来看一段代码

function show(){ 
alert(abc); 
} 
var abc="defg"; 
show();

有过C++或Java编程经验的人可能会说:“这程序,死定了,变量竟然在引用了该变量的函数后边定义,bug会灭掉你的。”放在浏览器上运行一下,结果怎样?完美运行!接下来我们就说一下这是咋回事——有var和没有var定义的变量的区别。

1、没有var

简明的说,定义变量时省略var是不安全的,不过是合法的。这时无论该变量是在什么位置定义的,解释器都会赋予该变量以全局作用域。

2、有var

安全的,合法的。定义的变量的作用域取决于定义的位置。至于作用域具体是什么,请参见本博客中“javascript作用域”一文。

这样,开头的那个问题可以解决了。函数中的才是对abc的定义,只不过值为undefined,这时abc有全局作用域,函数外的只是对abc的值的更新。

Javascript 相关文章推荐
Jquery下attr和removeAttr的使用方法
Dec 28 Javascript
jquery isType() 类型判断代码
Feb 14 Javascript
javascript检测浏览器flash版本的实现代码
Dec 06 Javascript
单击按钮显示隐藏子菜单经典案例
Jan 04 Javascript
Jquery实现遮罩层的简单实例(就是弹出DIV周围都灰色不能操作)
Jul 14 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 Javascript
Bootstrap基本插件学习笔记之折叠(22)
Dec 08 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
JS通过调用微信API实现微信支付功能的方法示例
Jun 29 Javascript
vue项目中导入swiper插件的方法
Jan 30 Javascript
用vue 实现手机触屏滑动功能
May 28 Javascript
Swiper实现导航栏滚动效果
Oct 16 Javascript
JQuery中$(document)是什么意思有什么作用
Jul 21 #Javascript
jquery显示隐藏input对象
Jul 21 #Javascript
jquery实现保存已选用户
Jul 21 #Javascript
jquery实现显示已选用户
Jul 21 #Javascript
jquery操作checkbox示例分享
Jul 21 #Javascript
jquery常用操作小结
Jul 21 #Javascript
JavaScript中的apply和call函数详解
Jul 20 #Javascript
You might like
php若干单维数组遍历方法的比较
2011/09/20 PHP
浅析php中抽象类和接口的概念以及区别
2013/06/27 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
2014/11/24 PHP
thinkPHP查询方式小结
2016/01/09 PHP
js 判断浏览器类型 去全角、半角空格 自动关闭当前窗口
2009/04/10 Javascript
Javascript公共脚本库系列(一): 弹出层脚本
2011/02/24 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
JQuery中使用Ajax赋值给全局变量异常的解决方法
2014/01/10 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
javascript如何实现360度全景照片问题汇总
2016/04/04 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
原生js实现瀑布流布局
2017/03/08 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
浅谈JS中this在各个场景下的指向
2019/08/14 Javascript
layer.alert回调函数执行关闭弹窗的实例
2019/09/11 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
2019/09/21 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
python 读取视频,处理后,实时计算帧数fps的方法
2018/07/10 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python3 enum模块的应用实例详解
2019/08/12 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
python实现上传文件到linux指定目录的方法
2020/01/03 Python
如何在django中添加日志功能
2020/02/06 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
澳大利亚百货商店中销量第一的商务衬衫品牌:Van Heusen
2018/07/26 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
人事部专员岗位职责
2014/03/04 职场文书
公司户外活动总结
2014/07/04 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
招商银行收入证明
2015/06/17 职场文书
《妈妈别哭,有我在》读后感3篇
2020/01/13 职场文书