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 相关文章推荐
$()JS小技巧
Jul 21 Javascript
javascript instanceof 与typeof使用说明
Jan 11 Javascript
javascript 三种编解码方式
Feb 01 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
Jan 26 Javascript
完美兼容各大浏览器获取HTTP_REFERER方法总结
Jun 24 Javascript
java必学必会之static关键字
Dec 03 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
Feb 23 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
JQuery EasyUI的一些常用组件
Jul 12 jQuery
在 Typescript 中使用可被复用的 Vue Mixin功能
Apr 17 Javascript
Node.js Event Loop各阶段讲解
Mar 08 Javascript
详解iframe跨域的几种常用方法(小结)
Apr 29 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 COOKIE设置为浏览器进程
2009/06/21 PHP
php实现的返回数据格式化类实例
2014/09/22 PHP
PHP7新功能总结
2019/04/14 PHP
json跟xml的对比分析
2008/06/10 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
vue实现长图垂直居上 vue实现短图垂直居中
2017/10/18 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
详解几十行代码实现一个vue的状态管理
2019/01/28 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
最全vue的vue-amap使用高德地图插件画多边形范围的示例代码
2020/07/17 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
pygame播放音乐的方法
2015/05/19 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
Django使用unittest模块进行单元测试过程解析
2019/08/02 Python
python DataFrame转dict字典过程详解
2019/12/26 Python
Django框架请求生命周期实现原理
2020/11/13 Python
CSS3 display知识详解
2015/11/25 HTML / CSS
简述安装Slackware Linux系统的过程
2012/01/12 面试题
计算机应用专业推荐信
2013/11/13 职场文书
大学生实习证明范本
2014/01/15 职场文书
安全标准化实施方案
2014/02/20 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
优秀实习生主要事迹
2014/05/29 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
歼十出击观后感
2015/06/11 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android