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
Mar 09 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
jquery form 加载数据示例
Apr 21 Javascript
vue select选择框数据变化监听方法
Aug 24 Javascript
Vue作用域插槽slot-scope实例代码
Sep 05 Javascript
JS原型与继承操作示例
May 09 Javascript
taro开发微信小程序的实践
May 21 Javascript
vue的滚动条插件实现代码
Sep 07 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
Mar 16 Javascript
Vue中用JSON实现刷新界面不影响倒计时
Oct 26 Javascript
带你使用webpack快速构建web项目的方法
Nov 12 Javascript
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分页时出现的Fatal error的解决方法
2011/04/18 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
ThinkPHP添加更新标签的方法
2014/12/05 PHP
PHP加密解密类实例代码
2016/07/20 PHP
用JS判别浏览器种类以及IE版本的几种方法小结
2011/08/02 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jquery ajax跨域解决方法(json方式)
2014/02/04 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
原生JS无缝滑动轮播图
2019/10/22 Javascript
JS数据类型判断的几种常用方法
2020/07/07 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[05:53]敌法师的金色冠名ID"BurNIng",是传说,是荣耀
2020/07/11 DOTA
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
Python 转义字符详细介绍
2017/03/21 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Python搭建Spark分布式集群环境
2019/07/05 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
python sleep和wait对比总结
2021/02/03 Python
迪梵英国官方网站:Darphin英国
2017/12/06 全球购物
大学课外活动总结
2014/07/09 职场文书
销售团队获奖感言
2014/08/14 职场文书
员工工作表现自我评价
2015/03/06 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
使用pytorch实现线性回归
2021/04/11 Python
python基础之匿名函数详解
2021/04/21 Python