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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
JavaScript 10件让人费解的事情
Feb 15 Javascript
使用javascript:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
javascript函数式编程实例分析
Apr 25 Javascript
JavaScript必知必会(三) String .的方法来自何方
Jun 08 Javascript
JavaScript中数组slice和splice的对比小结
Sep 22 Javascript
JavaScript中的遍历详解(多种遍历)
Apr 07 Javascript
关于vue.js组件数据流的问题
Jul 26 Javascript
JS+Canvas绘制动态时钟效果
Nov 10 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
javascript实现支付宝滑块验证码效果
Jul 24 Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 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
4月1日重磅发布!《星际争霸II》6.0.0版本更新
2020/04/09 星际争霸
重新认识php array_merge函数
2014/08/31 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
javascript知识点收藏
2007/02/22 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
将JSON字符串转换成Map对象的方法
2016/11/30 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
如何在微信小程序中实现Mixins方案
2019/06/20 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
[10:21]2018DOTA2国际邀请赛寻真——Winstrike
2018/08/11 DOTA
理解Python中函数的参数
2015/04/27 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python切片索引用法示例
2018/05/15 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
浅析Python __name__ 是什么
2020/07/07 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
医学生实习自我鉴定
2013/09/27 职场文书
幼儿园元旦家长感言
2014/02/27 职场文书
职业生涯规划书前言
2014/04/15 职场文书
2015年元旦活动总结
2014/05/09 职场文书
励志演讲稿200字
2014/08/21 职场文书
房屋维修协议书范本
2014/09/25 职场文书
田径运动会通讯稿
2015/07/18 职场文书
MySQL表字段时间设置默认值
2021/05/13 MySQL
Java常用工具类汇总 附示例代码
2021/06/26 Java/Android
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Redis基本数据类型List常用操作命令
2022/06/01 Redis