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的输入框在光标位置插入内容, 并选中
Oct 29 Javascript
javascript 随机展示头像实现代码
Dec 06 Javascript
ECMAScript 创建自己的js类库
Nov 22 Javascript
JS实现div内部的文字或图片自动循环滚动代码
Apr 19 Javascript
JS去除数组重复值的五种不同方法
Sep 06 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
Sep 09 Javascript
jQuery使用append在html元素后同时添加多项内容的方法
Mar 26 Javascript
javascript比较两个日期相差天数的方法
Jul 23 Javascript
基于javascript数组实现图片轮播
May 02 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
使用JavaScript实现alert的实例代码
Jul 06 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
Aug 28 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
239军机修复记
2021/03/02 无线电
php实现读取超大文件的方法
2014/07/28 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
2015/09/22 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
常用的几段javascript代码分享
2014/03/25 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
vue项目常用组件和框架结构介绍
2017/12/24 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
微信小程序实现签到弹窗动画
2020/09/21 Javascript
[01:00]一分钟回顾2018DOTA2亚洲邀请赛现场活动
2018/04/07 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
django定期执行任务(实例讲解)
2017/11/03 Python
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
python保存二维数组到txt文件中的方法
2018/11/15 Python
使用python远程操作linux过程解析
2019/12/04 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
Python虚拟环境virtualenv创建及使用过程图解
2020/12/08 Python
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
HTML5中5个简单实用的API
2014/04/28 HTML / CSS
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
珍珠鸟教学反思
2014/02/01 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
学生会部长竞选稿
2015/11/19 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
Redis主从复制操作和配置详情
2022/09/23 Redis