JavaScript中var关键字的使用详解


Posted in Javascript onAugust 14, 2015

作用
声明作用;如声明个变量。
语法  

var c = 1;

省略var
在javascript中,若省略var关键字而直接赋值,那么这个变量为全局变量,哪怕是在function里定义的。

<script type="text/javascript"> 
  function Define() { 
    a = 2; 
  } 
  function Hello() { 
    alert(a); 
  } 
</script>

如代码所示,运行函数Define()后,变量a声明为全局变量。在Hello()函数中可以引用变量a。

更具体的示例
我们都知道 JavaScript 中的var关键字是用来申明变量的,但是如果不用这个关键字而直接写出变量名,然后赋值给它,JavaScript 也并不会报错,它会自动申明这个变量。难道说 JavaScript 中的var是个多余的东西吗?显然不是!

请看下面这段代码:

str1 = 'Hello JavaScript!';
function fun1() {
 str1 = 'Hello Java!';
}
fun1();
alert(str1);

// 弹出 Hello Java!

可以看到,在函数 fun1 被调用后,str1 的值在函数内被改变了。

再将上面的代码稍作修改:

str1 = 'Hello JavaScript!';
function fun1() {
 var str1 = 'Hello Java!';
}
fun1();
alert(str1);

// 弹出 Hello JavaScript!

看到没有,str1 的值并没有被函数 fun1 改变。

显然,var关键字影响了变量的作用域。

函数外部:变量不管是否用了var申明,都是全局变量。

函数内部:变量如果没有使用var关键字申明,那它就是全局变量,只有用var关键字申明了,才是局部变量。
结论

为了避免潜在的风险,务必使用var关键字来申明变量。

Javascript 相关文章推荐
利用JQuery的load函数动态加载其它页面的内容的实现代码
Dec 14 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
Oct 12 Javascript
AngularJS模板加载用法详解
Nov 04 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
Dec 19 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
vuejs实现递归树型菜单组件
Jan 13 Javascript
微信小程序实现自定义加载图标功能
Jul 19 Javascript
详解JavaScript实现动态的轮播图效果
Apr 29 Javascript
vue实现页面滚动到底部刷新
Aug 16 Javascript
JavaScript实现省份城市的三级联动
Feb 11 Javascript
vue绑定class的三种方法
Dec 24 Vue.js
JavaScript的jQuery库中ready方法的学习教程
Aug 14 #Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
Aug 14 #Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 #Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 #Javascript
js实现表单检测及表单提示的方法
Aug 14 #Javascript
JavaScript中的this关键字使用详解
Aug 14 #Javascript
JS实现双击编辑可修改状态的方法
Aug 14 #Javascript
You might like
Zend公司全球首推PHP认证
2006/10/09 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
PHP函数常用用法小结
2010/02/08 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
php生成xml时添加CDATA标签的方法
2014/10/17 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
微信推送功能实现方式图文详解
2019/07/12 PHP
最新优化收藏到网摘代码(digg,diigo)
2007/02/07 Javascript
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
Vue实现用户自定义字段显示数据的方法
2018/08/28 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
Python深入学习之内存管理
2014/08/31 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
如何基于Python实现数字类型转换
2020/02/07 Python
使用CSS3来实现滚动视差效果的教程
2015/08/24 HTML / CSS
NIHAOMARKET官方海外旗舰店:意大利你好华人超市
2018/01/27 全球购物
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
操行评语大全
2014/04/30 职场文书
机械设备与数控技术专业求职信
2014/08/10 职场文书
幼儿园父亲节活动总结
2015/02/12 职场文书
军训结束新闻稿
2015/07/17 职场文书