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 相关文章推荐
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
Dec 06 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
Javascript中replace()小结
Sep 30 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
Apr 08 Javascript
jquery checkbox的相关操作总结
Oct 17 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
详解vue-cli3多页应用改造
Jun 04 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
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
PHP的curl实现get,post和cookie(实例介绍)
2013/06/17 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
2012/04/20 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
2013/01/09 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
javascript创建数组之联合数组的使用方法示例
2013/12/26 Javascript
学习JavaScript设计模式(链式调用)
2015/11/26 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
js制作支付倒计时页面
2016/10/21 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
JavaScript时间日期操作实例小结【5个示例】
2018/12/22 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
深入理解Python中字典的键的使用
2015/08/19 Python
python实现求最长回文子串长度
2018/01/22 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
Prototype如何更新局部页面
2013/03/03 面试题
应届实习生的自我评价范文
2014/01/05 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
文明村镇申报材料
2014/05/06 职场文书
经济贸易专业自荐信
2014/06/11 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
兵马俑的导游词
2015/02/02 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫