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 相关文章推荐
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
Oct 20 Javascript
Jquery简单分页实现方法
Jul 24 Javascript
JavaScript操作表单实例讲解(上)
Jun 20 Javascript
jQuery实现6位数字密码输入框
Dec 29 Javascript
jQuery实现简单的滑动导航代码(移动端)
May 22 jQuery
JavaScript定义及输出螺旋矩阵的方法详解
Dec 01 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
vue-openlayers实现地图坐标弹框效果
Sep 24 Javascript
JavaScript 实现拖拽效果组件功能(兼容移动端)
Nov 11 Javascript
JS中forEach()、map()、every()、some()和filter()的用法
May 11 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
世界上第一台立体声收音机
2021/03/01 无线电
递归列出所有文件和目录
2006/10/09 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
5 cool javascript apps
2007/03/24 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
原生js制作日历控件实例分享
2016/04/06 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
JS判断微信扫码的方法
2017/08/07 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
AngularJS实现的base64编码与解码功能示例
2018/05/17 Javascript
vue ssr 指南详读
2018/06/29 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
浅谈layui分页控件field参数接收对象的问题
2019/09/20 Javascript
提升Python程序运行效率的6个方法
2015/03/31 Python
Django后台获取前端post上传的文件方法
2018/05/28 Python
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
windows10环境下用anaconda和VScode配置的图文教程
2020/03/30 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
Python Map 函数的使用
2020/08/28 Python
HTML5打开手机扫码功能及优缺点
2017/11/27 HTML / CSS
通用C#笔试题附答案
2016/11/26 面试题
应届生财务会计求职信
2013/11/05 职场文书
装修协议书范本
2014/04/21 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
幼儿园老师个人总结
2015/02/28 职场文书
小学运动会通讯稿
2015/07/18 职场文书
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers